Git 19个常用的命令

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Git 19个常用的命令

Git 19个常用的命令

1. 超实用 Alias

1 2 3 4 5 6 7 8 alias g="git"

alias gb="git branch"

alias gco="git checkout"

alias gcmsg="git commit -m"

alias gamend="git commit --amend -C HEAD"

alias gst="git status"

alias log="git log --oneline --graph --decorate --color=always" alias logg="git log --graph --all --format=format:'%C(bold blue)%h%C(reset) - %C(bold

green)(%ar)%C(reset) %C(white)%s%C(reset) %C(bold white)— %an%C(reset)%C(bold yellow)%d%C(reset)' --abbrev-commit --date=relative"

2. 取回远端 master 与本地 master 分支合并 1 2 3 4 5 6 7 gco master g fetch --all 或者 g fetch origin master g reset --hard origin/master(本地没有修改,所以完全覆盖也没关系) 或者 g rebase origin/master (本地有修改还没push )

3. 推送分支到远端

假设现在所在的分支是import ,指定推送到远端分支liujin-import 1 g push origin import:liujin-import

假如远端的 liujin-import 分支已经不需要,可以直接覆盖掉 1 g push -f origin import:liujin-import

4. 追加文件到某个 commit

有时候修完某功能并提交了 commit 之后才发现还有一点小修改,这时候又不想再提交一个commit ,可以追加这个文件到前一个commit ,步骤如下: 1 2 git add 你要追加修改的文件

git commit --amend -C HEAD 或者 gamend

5. 查找包含某文件的 commit

1 2 git log 文件路径

git show commit_id

或者

1 git log --follow filename(绝对路径)

Ref: List all commit for a specific file

6. 把一个 commit 分拆为两个 commit

老大常说要养成一个小改动对应一个commit 的习惯,但是有时候写得太乱懒得去分割就把很多改动做成了一个commit ,这样子增加了以后维护的难度,所以要把一个 commit 分拆为多个 commit 怎么办呢?

∙ 首先把你要分拆的 file reset 了:

1 2 git reset HEAD~1 path/to/file

# This doesn't delete your changes to path/to/file

∙ 接着修改当前这个 commit 的 message ,命令是:

1 2 git commit --amend -v

# -v 参数是打开editor 编辑

∙ 然后就可以把 reset 出来那个 file 新建一个 commit ,命令是:

1 git commit -v path/to/file

这样就把一个 commit 分拆为两个啦,^_^

7. 删除某些 commit

1 git rebase -i HEAD~10

8. 追加修改到之前某个 commit

假如 gst 发现已经有文件被修改,这时候需要把修改暂存起来。 1 git stash

接着找到你需要追加修改的那个commit id ,如4b739bb

1 2 g rebase 4b739bb~ -i 或者

g rebase -i HEAD~5 #列出最近5个commit

这时候会自动打开编辑器,把你需要修改的 commit 前面的 pick 改成 edit ,保存,关闭编辑器,这时候会回到终端,再输入:

1 g stash pop

把暂存的修改读出来,然后做修改,g add .,最后

1 g rebase --continue

9. 查找含有特定关键字的 commit

git log --grep

最基本的用法

git log --grep=frotz --grep=nitfol --since=1.month

查找一个月以内commit log message 里含有 frotz 或者 nitfol 的 commits

git log --grep=frotz --author=Linus

查找指定作者

git grep -l -e frotz --and -e nitfol

查找同一行含有 frotz 和 nitfol 的文件

git grep -l --all-match -e frotz -e nitfol

查找文件里面含有 frotz 和 nitfol 的文件(不局限于同一行)

10. 清空 git working copy 还没追踪的文件 git clean -f

git clean -f -d

如果还想删除目录

git clean -f -X

如果只是想删除忽略的文件

git clean -f -x

如果想删除忽略和非忽略的文件

11. 清理本地仓库

长时间做一个项目,经常需要 git fetch ,这样做每次都会拉回远端的全部分支。 即使远端有些分支已经删除,但是运行git branch -a 还是会显示已删除的分支, 长时间下来这个列表就会很长很长,这时候就需要清理一下本地的仓库了: 1 2 git remote prune origin # `prune`会删除任何不存在于远端仓库的分支,这样运行 `git branch -a`命令的时候顿时就清静了

12. 创建追踪远端分支的本地分支

1 2 gb dev origin/r1-dev

#Branch dev set up to track remote branch r1-dev from origin.

13. 分支移动

1 2 g branch -f master HEAD~3

# 把 master 分支强制移到 HEAD 前面第三个 commit

14. Revert 一个 Merge

git revert -m 1 M -> W

相关文档
最新文档