资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
文档供参考,可复制、编制,期待您的好评与关注! Git 19个常用的命令Git 19个常用的命令1. 超实用 Alias12345678alias g=gitalias gb=git branchalias gco=git checkoutalias gcmsg=git commit -malias gamend=git commit -amend -C HEADalias gst=git statusalias log=git log -oneline -graph -decorate -color=alwaysalias 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=relative2. 取回远端 master 与本地 master 分支合并1234567gco masterg fetch -all 或者g fetch origin masterg reset -hard origin/master(本地没有修改,所以完全覆盖也没关系) 或者g rebase origin/master(本地有修改还没push)3. 推送分支到远端假设现在所在的分支是import,指定推送到远端分支liujin-import1g push origin import:liujin-import假如远端的 liujin-import 分支已经不需要,可以直接覆盖掉1g push -f origin import:liujin-import4. 追加文件到某个 commit有时候修完某功能并提交了 commit 之后才发现还有一点小修改,这时候又不想再提交一个commit,可以追加这个文件到前一个commit,步骤如下:12git add 你要追加修改的文件git commit -amend -C HEAD 或者 gamend5. 查找包含某文件的 commit12git log 文件路径git show commit_id或者1git log -follow filename(绝对路径)Ref: List all commit for a specific file6. 把一个 commit 分拆为两个 commit老大常说要养成一个小改动对应一个commit的习惯,但是有时候写得太乱懒得去分割就把很多改动做成了一个commit,这样子增加了以后维护的难度,所以要把一个 commit 分拆为多个 commit 怎么办呢? 首先把你要分拆的 file reset 了:12git reset HEAD1 path/to/file# This doesnt delete your changes to path/to/file 接着修改当前这个 commit 的 message,命令是:12git commit -amend -v# -v参数是打开editor编辑 然后就可以把 reset 出来那个 file 新建一个 commit,命令是:1git commit -v path/to/file这样就把一个 commit 分拆为两个啦,_7. 删除某些 commit1git rebase -i HEAD108. 追加修改到之前某个 commit假如 gst 发现已经有文件被修改,这时候需要把修改暂存起来。1git stash接着找到你需要追加修改的那个commit id,如4b739bb12g rebase 4b739bb -i 或者g rebase -i HEAD5 #列出最近5个commit这时候会自动打开编辑器,把你需要修改的 commit 前面的 pick 改成 edit,保存,关闭编辑器,这时候会回到终端,再输入:1g stash pop把暂存的修改读出来,然后做修改,g add .,最后1g rebase -continue9. 查找含有特定关键字的 commit git log -grep最基本的用法git log -grep=frotz -grep=nitfol -since=1.month查找一个月以内commit log message里含有 frotz 或者 nitfol 的 commitsgit 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 -fgit clean -f -d如果还想删除目录git clean -f -X如果只是想删除忽略的文件git clean -f -x如果想删除忽略和非忽略的文件11. 清理本地仓库长时间做一个项目,经常需要 git fetch,这样做每次都会拉回远端的全部分支。即使远端有些分支已经删除,但是运行git branch -a还是会显示已删除的分支,长时间下来这个列表就会很长很长,这时候就需要清理一下本地的仓库了:12git remote prune origin# prune会删除任何不存在于远端仓库的分支,这样运行 git branch -a命令的时候顿时就清静了12. 创建追踪远端分支的本地分支12gb dev origin/r1-dev#Branch dev set up to track remote branch r1-dev from origin.13. 分支移动12g branch -f master HEAD3# 把 master 分支强制移到 HEAD 前面第三个 commit14. Revert一个 Mergegit revert -m 1 M - W123-o-o-o-M-x-x-W / -A-B15. 获取短的 commit hash1git rev-parse -short HEAD16. commit 了以后才记起来忘了创建 .gitignore, 垃圾文件都已经提交比如说一个nodejs项目,一开始的时候就忘记了创建.gitnore文件忽略掉node_modules的内容,所以其中的内容就已经被提交了。即使紧接着你在.gitignore加了一行node_modules, 已经被提交的文件是不会自动删除的。这时候你就需要做的就是:123git rm -cached path/to/ignored#nodejs案例就是git rm -r -cached node_modules17. 提交所有被删除的文件1$ git add -u这个命令告诉 git 自动更新已跟踪的文件, 包括被删除的已跟踪文件。如果你用的是 git 2.01$ git add -u :/友情提示:从 git 2.0(2013年中)开始,以上命令会 stage 整个 working tree 的文件。如果你只是想 stage 当前目录的文件,应该这么用:1$ git add -u .详情可以去搜 “git add -A” 和 “git add .” 的区别”.Ref: StackOverflow18. 撤销上一次 git add . 操作这种情况通常是因为忘记添加.gitignore文件,或者一时手快把一些非必要的文件(如node_modules)跟踪了, 解决办法:1git reset该命令会 unstage 你上一个 commit 增加的所有文件。如果你只想 unstage 某些文件:1git reset - 还可以 unstage 文件里某处的改动:1git reset -p19. 值得一读Working with submodulesManaging large files with Git LFSgit bisect /
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号