Git命令全面总结

 

目录

1、Git 查看和配置信息命令

1.1 配置用户名、邮箱

1.2 如果需要再次编辑这两个名称,可以如下命令

1.3 查看配置文件的内容

1.4 如何查看某个命令的帮助?

2、git status-add-commit 基本流程

3、详解add&commit&reset

3.1 git add

3.2  git commit

3.3 git reset

4、分支相关及合并分支


 

1、Git 查看和配置信息命令

1.1 配置用户名、邮箱

$ git config --global user.name "lvjie"

$ git config --global user.email  [email protected]

1.2 如果需要再次编辑这两个名称,可以如下命令

$ git config --global -e

1.3 查看配置文件的内容

$ git config --global --list

1.4 如何查看某个命令的帮助?

$ git add --help

就会打开add用法的一个网站

2、git status-add-commit 基本流程

2.1 git status指令

此指令可以查询当前目录下文件的状态

2.2 增加一个readme.txt

新增readme.txt文件处于Untracked状态,也就是说Git已经感知到文件的

存在,但是还没有跟踪它。

提示你使用add 命令,可以将文件纳入跟踪状态,可以被提交。

2.3 git add readme.txt

 

readme.txt文件被纳入跟踪,将其从工作区提交到了暂存区,暂存区也可以称为索引(index)。

分析如下:

(1).On branch master:表示当前位于master分支。

(2).No commits yet:表示至今还没有任何提交。

(3).Changes to be committed:表示已经有新的修改被提交到暂存区,可以被提交到存储库中了。

(4).文件由原来的Untracked状态转换为new file状态。

通过提示 git rm --cached …… 可以删除暂存区

回到add之前状态。

2.4 git commit -m "commit readme.txt"

仅将文件从工作区提交到暂存区是不够的,一个完整的流程还没有走完,如果想让暂存区的内容可以永久安全的保存下来,需要将其提交到仓库中存档,git commit指令即可完成此工作。

指令解析如下:

(1).-m表示对此次提交进行注释,简述此题提交的相关信息。

(2).如果不加-m,那么在点击回车之后,会默认弹出自带的VIM编辑器,然后输入提交信息。

commit 完成之后,可以看到暂存区和工作区都是干净的。 

3、详解add&commit&reset

3.1 git add

add命令,主要是讲相关文件添加到暂存区或者说缓存区中,然后使用commit命令将暂存区中的问见提交到git版本库。

3.1.1 add一个文件

$ git add readme.txt

3.1.2 add多个文件

$ git add readme.txt readme2.txt // add 两个文件

$ git add *.java // add 以.java为后缀的所有文件(通配符)

$ git add test/ // add test文件夹下的所有文件

$ git add . // add 所有文件 可以提交未跟踪、修改和删除文件

$ git add * // add 所有文件 可以提交未跟踪和修改文件,但是不处理删除文件。

3.1.3 当我们add了多个文件后,如果发现有些文件不能add,要取消这些文件的add 该如何操作呢?

方法一、通过 git reset HEAD <filename> 即可

方法二、git rm --cached <filename>

可以发现,两者的记录是不一样的。

3.2  git commit

通过git commit指令可以将暂存区中的内容提交到当前分支。

3.2.1 git commit -m "注释"

将add的文件提交到当前分支

3.2.2 git commit -am "注释"

这个命令将 add 和 git commit -m 进行了合并, 直接将修改的文件 提交到 当前分支

3.2.3、如何删除某一次的commit

首先 通过输入 git log --oneline 查看提交日志

例如需要删除4397e2a这次的提交,通过输入 git rebase -i d9eaf49

可以直接通过vim打开一个文件,可以看到内容如下,当我们要删除4397e2a这次提交,直接

将pick 修改为 drop即可,当然下方也有相关其他命令提示。

切记,当需要删除某次的commit的时候,最好是选择删除最后一次提交的记录,如果是删除中间某一次的提交记录,很有可能造成代码合并冲突的问题。同时当删除这次的commit的时候,内容直接回退到上一个commit状态,并不是 add 之前的状态。

下面分别说说其他几个命令的意思:

reword:表示这次提交仍然有效,但是可以编辑提交的信息(当我们为4397e2a前设置为reword时,退出vim保存,会通过vim打开另一个文件,可以直接修改 提交信息,保存即可)。

edit:对这一次提交可以再次编辑,也就是说可以撤销这次commit,并且保留修改的内容,具体效果如下:

如何撤销某次的commit并重新再次commit?

总结:

如何撤销某次的commit并重新再次commit?

git rebase -i d9eaf49 打开vim后编辑为edit,保存退出;

git reset HEAD^ 此时在通过 git status 就可以查看到 上一次修改了哪些文件

接下来可以继续修改文件,然后 add commit

git rebase --continue 回到develop分支

3.2.4 如何恢复上一次删除的commit?

我们输入git log --oneline,可以查看到当前head指向的位置。

我们把add dev1-dev1 这一次的提交删除后,如下:

发现head指向了前一个位置,此时如果我们需要恢复上一次删除的commit该输入什么命令呢?

方法一: 这种情况必须你的记得到上次删除的 commit 值,俗称sha-1 值

git reset fb47489 --hard

方法二(暂时不行):

git reset ORIG_HEAD --hard

3.2.5 如何修改最后一次提交的信息?

git commit --amend -m "提交信息"

例如下:

3.3 git reset

git reset命令是Git提供的后悔药之一,它可以帮我们把内容恢复到指定的commit提交版本。

3.3.1 git reset <sha-1> --hard

git reset 874218d --hard

直接回退到 874218d 该commit记录,之前的记录删除掉,当然其实并没有删除,只是让当前的head指针指向 874218d。

3.3.2 git reset <sha-1> --soft

git reset 874218d --soft

直接回退到 874218d 该commit记录,但是通过输入git status,可以看到当前处于修改状态,如下:

3.3.3 git reset HEAD^ --soft

让当前分支回退到上一次提交。

4、分支相关及合并分支

4.1 创建一个分支 git branch <分支名>

4.2 切换到某一分支git checkout <分支名>

4.3 新建分支同时进行切换 git checkout -b <分支名>

以上创建方式都是基于当前分支来创建的。

4.4 查看有多少分支 git branch

4.5 修改分支名 git branch -m test test-2

将test分支修改为test-2分支

4.6 如何查看某一分支的创建时间和提交记录?

git reflog show --date-iso <分支名>

4.7 删除分支 git branch -d <分支名>

4.8 恢复删除某一分支

注意,当一个分支没有merge的时候,-d 是无法删除的,必须通过-D强制删除,删除后会出现一个

was <sha-1>

当我们需要恢复该分支时,输入 git branch <恢复后的分支名> <sha-1>

如果不记得sha-1的值,则可以通过输入 git reflog命令查看

a9a1b7f (test) HEAD@{1}: checkout: moving from develop to test1

发布了74 篇原创文章 · 获赞 17 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/u010349644/article/details/86545819
今日推荐