IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 常见Git命令示例 -> 正文阅读

[开发工具]常见Git命令示例

常见Git命令示例

题记

众所周知,当前互联网开发代码、分支管理工具大多采用GitSVN,且Git使用的场景越来越多,对于分支的管控,支持的命令更加丰富,那么我们如何灵活的使用相关的命令呢,请让我们一起探索。

常用命令示例

git仓库交互示例
在这里插入图片描述

git init

git init repository_demo

初始化后,会在 repository_demo 目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。

git commit

$ git add *.c
$ git add README
$ git commit -m ‘首次提交’

git clone

git clone https://gitee.com/shang_xs/project-learn.git project-learn

git config

查看 git配置信息

$ $ git config --list
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean – %f
filter.lfs.smudge=git-lfs smudge – %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=D:/software/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false
credential.helper=manager-core
credential.https://dev.azure.com.usehttppath=true
init.defaultbranch=master
user.email=‘your_email@domain.com’
user.name=‘your_name_sxs’
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
remote.origin.url=https://gitee.com/shang_xs/project-learn.git
remote.origin.fetch=+refs/heads/:refs/remotes/origin/
branch.master.remote=origin
branch.master.merge=refs/heads/master

编辑当前git仓库的config文件
git config -e

编辑整个git仓库的config文件
git config -e --global

设置全局提交代码的用户信息
$ git config --global user.name “shang_xs”
$ git config --global user.email shang_xs@163.com

git add

该命令可将该文件添加到暂存区

添加一个或多个文件到暂存区
git add [file1] [file2] ...

添加指定目录到暂存区,包括子目录
git add [dir]

添加当前目录下的所有文件到暂存区
git add .

git status

该命令用于查看在你上次提交之后是否有对文件进行再次修改, -s标识简化结果显示

$ git status
$ git status -s

git diff

git diff 命令比较文件的不同,即比较文件在暂存区和工作区的差异。
git diff 命令显示已写入暂存区和已经被修改但尚未写入暂存区文件的区别。

git diff

有两个主要的应用场景
尚未缓存的改动:git diff
查看已缓存的改动: git diff --cached
查看已缓存的与未缓存的所有改动:git diff HEAD
显示摘要而非整个 diffgit diff --stat

显示暂存区和工作区的差异
$ git diff [file]

git diff 示例

git diff --git a/src/main/java/com/learn/demo/data/structure/LinkedBlockingQuestion.java b/src/main/java/com/learn/demo/data/structure/LinkedBlockingQuestion.java
index 4ff17d7..78c2440 100644
--- a/src/main/java/com/learn/demo/data/structure/LinkedBlockingQuestion.java
+++ b/src/main/java/com/learn/demo/data/structure/LinkedBlockingQuestion.java
@@ -28,13 +28,13 @@ public class LinkedBlockingQuestion {

     }

-    private static void testclear() {
-        int sizeBefore = queue.size();
-        System.err.println("清空队列前,队列长度:" + sizeBefore);
-        queue.clear();
-        int sizeAfter = queue.size();
-        System.err.println("清空队列后,队列长度:" + sizeAfter);
-    }
+//    private static void testclear() {
+//        int sizeBefore = queue.size();
+//        System.err.println("清空队列前,队列长度:" + sizeBefore);
+//        queue.clear();
+//        int sizeAfter = queue.size();
+//        System.err.println("清空队列后,队列长度:" + sizeAfter);
+//    }

显示暂存区和上一次提交(commit)的差异
$ git diff --cached [file]

$ git diff --staged [file]

显示两次提交之间的差异
$ git diff [first-branch]…[second-branch]

git commit

git commit 命令将暂存区内容添加到本地仓库中。

提交暂存区到本地仓库中
git commit -m [message]

提交暂存区的指定文件到仓库区
$ git commit [file1] [file2] ... -m [message]
-a 参数设置修改文件后不需要执行 git add 命令,直接来提交

$ git commit -a
设置提交代码时的用户信息
开始前我们需要先设置提交的用户信息,包括用户名和邮箱
$ git config --global user.name “shang_xs”
$ git config --global user.email shang_xs@163.com
如果去掉 --global 参数只对当前仓库有效

git reset

git reset [--soft | --mixed | --hard] [HEAD]
--mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。

git reset [HEAD]

$ git reset HEAD^ # 回退所有内容到上一个版本
$ git reset HEAD^ hello.php # 回退 hello.php 文件的版本到上一个版本
$ git reset 052e # 回退到指定版本

--soft 参数用于回退到某个版本

git reset --soft HEAD

$ git reset --soft HEAD~3 # 回退上上上一个版本
--hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交:

git reset --hard HEAD

$ git reset –hard HEAD~3 # 回退上上上一个版本
$ git reset –hard bae128 # 回退到某个版本回退点之前的所有信息。
$ git reset --hard origin/master # 将本地的状态回退到和远程的一样
注释:谨慎使用 –hard 参数,它会删除回退点之前的所有信息

git rm

将文件从暂存区和工作区中删除
git rm <file>

以下实例从暂存区和工作区中删除 runoob.txt 文件
git rm runoob.txt

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

强行从暂存区和工作区中删除修改后的 runoob.txt 文件
git rm -f runoob.txt

如果想把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可
git rm --cached <file>

以下实例从暂存区中删除 runoob.txt 文件
git rm --cached runoob.txt

递归删除
git rm –r *

git mv

git mv 命令用于移动或重命名一个文件、目录或软连接
git mv [file] [newfile]

如果新文件名已经存在,但还是要重命名它,可以使用 -f 参数
git mv -f [file] [newfile]

添加一个 README 文件
$ git add README
然后对其重命名
$ git mv README README.md
$ ls
README.md

git log

查看历史提交记录

--oneline 选项来查看历史记录的简洁的版本
git log --online

--reverse 参数来逆向显示所有日志
$ git log --reverse --oneline

查找指定用户的提交日志
git log --author

三周前且在四月十八日之后的所有提交,可以执行这个(还用了 --no-merges 选项以隐藏合并提交)
git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges

git blame <file>

看指定文件的修改记录,以列表形式查看指定文件的历史修改记录
git blame <file>

git remote

显示所有远程仓库
git remote -v

显示某个远程仓库的信息
git remote show [remote]

$ git remote show https://gitee.com/shang_xs/project-learn.git

  • remote https://gitee.com/shang_xs/project-learn.git
    Fetch URL: https://gitee.com/shang_xs/project-learn.git
    Push URL: https://gitee.com/shang_xs/project-learn.git
    HEAD branch: master
    Local ref configured for ‘git push’:
    master pushes to master (up to date)

添加远程版本库
git remote add [shortname] [url]

shortname 为本地的版本库,提交到 gitee
$ git remote add origin git@gitee.com:shang_xs/project-learn.git
$ git push -u origin master

remote 其他相关命令

git remote rm name # 删除远程仓库
git remote rename old_name new_name # 修改仓库名

git fetch

从远端仓库提取数据并尝试合并到当前分支
git merge

该命令就是在执行 git fetch 之后紧接着执行 git merge 远程分支到你所在的任意分支

假设你配置好了一个远程仓库,并且你想要提取更新的数据,你可以首先执行
git fetch [alias]

以上命令告诉 Git 去获取它有你没有的数据,然后你可以执行
git merge [alias]/[branch]

git pull

git pull 其实就是 git fetchgit merge FETCH_HEAD 的简写
git pull <远程主机名> <远程分支名>:<本地分支名>

示例
$ git pull
$ git pull origin
将远程主机 originmaster 分支拉取过来,与本地的 brantest 分支合并
git pull origin master:brantest

如果远程分支是与当前分支合并,则冒号后面的部分可以省略
git pull origin master

git push

git push 命用于从将本地的分支版本上传到远程并合并

命令格式如下:
git push <远程主机名> <本地分支名>:<远程分支名>

如果本地分支名与远程分支名相同,则可以省略冒号
git push <远程主机名> <本地分支名>

示例
以下命令将本地的 master 分支推送到 origin 主机的 master 分支
$ git push origin master
相等于
$ git push origin master:master
如果本地版本与远程版本有差异,但又要强制推送可以使用 --force 参数
git push --force origin master

删除主机的分支可以使用 --delete 参数,以下命令表示删除 origin 主机的 master 分支
git push origin --delete master

git branch

创建分支命令
git branch (branchname)

切换分支命令
git checkout (branchname)

当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录
合并分支命令
git merge

Git 分支管理

列出分支
git branch

如果我们要手动创建一个分支。执行 git branch (branchname) 即可
git branch dev

分支切换
git checkout -b dev

分支合并
git merge

冲突解决
git diff 查看冲突内容
手动处理冲突文件后,执行 git add git -am commit 'conflict resolution'

git tag

git -a 选项意为"创建一个带注解的标签"
git tag -a v1.0

git tag示例

$ git log
commit d8d8d68cbeb84ea63e8e8cabb9a1c4c33bfbc5d4 (HEAD -> master, origin/master, origin/HEAD)
Author: xxxxxxshang_xs@163.com
Date: Mon Jun 24 20:20:03 2019 +0800
快速排序

$ git tag -a v0.01 d8d8d68
git log --oneline --decorate --graph

如果我们要查看所有标签可以使用以下命令
$ git tag
v0.01
v0.02

指定标签信息命令
git tag -a <tagname> -m "runoob.com标签"

PGP签名标签命令
git tag -s <tagname> -m "runoob.com标签"

相关命令参考

Quick reference guides:

GitHub Cheat Sheet | Visual Git Cheat Sheet
Complete list of all commands

Setup and Config

Getting and Creating Projects

Basic Snapshotting

Branching and Merging

Sharing and Updating Projects

Inspection and Comparison

Patching

Debugging

Guides

Email

External Systems

Administration

Server Admin

Plumbing Commands

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 11:58:27  更:2022-04-26 12:00:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 15:03:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码