ouyang9r 发表于 2022-3-15 12:21

git常用命令速查

# git常用命令速查
## 创建版本库
   git clone <url>         克隆远程版本库
   git init                  切始化本地版本库
## 修改和提交
   git status                查看状态
   git diff                  查看变更内容
   git add                   跟踪所有改动过的文件
   git add <file>            跟踪指定的文件
   git mv <old> <new>      文件改名
   git rm <file>             删除文件
   git rm --cached <file>    停止跟踪文件但不删除
   git commit -m "message"   提交所有更新过的文件
   git commit --amend      修改最后一次提交
## 查看提交历史
   git log    查看提交历史
   git log -p <file>         查看指定文件的提交历史
   git blame <file>          以列表方式查看指定文件的提交历史
## 撤销
   git reset --hard HEAD   撒消工作目录中所有未提交文件的修改内容
   git checkout HEAD <file>撤消指定的未提交文件的修改内容
   git revert <commit>       撤消指定的提交
## 分支与标签
   git branch                         显示所有本地分支
   git checkout <branch/tag>          切换到指定分支或标签
   git branch <new-branch>            创建新分支
   git branch -d <branch>             删除本地分支
   git tag                            列出所有本地标签
   git tag <tagname>                  基于最新提交创建标签
   git tag -d <tagname>               删除标签
## 合并与行合
   git merge <branch>               合并指定分支到当前分支
   git rebase <branch>                行合指定分支到当前分支
## 远程操作
   git remote -v                      查看远程版本库信息
   git remote show <remote>         查看指定远程版本库信息
   git remote add <remote> <url>      添加远程版本库
   git fetch <remote>               从远程库获取代码
   git pull<remote><branch>#          下载代码及快速合并
   git push <remote><branch>          上传代码及快速合并
   git push <remote><branch/tag-name> 删除远程分支或标签
   git push--tags                     上传所有标签

潇洒三叔 发表于 2022-3-15 15:07

我来 补充一些
git cherry-pick
git cherry-pick commitID1 commitID2 // 抓取 commitID1 commitID2 这两条提交记录放到当前分支
如果你想将一些提交复制到当前所在的位置(HEAD)下面的话, Cherry-pick 是最直接的方式了。我个人非常喜欢 cherry-pick,因为它特别简单。
------------
Git Tags
分支很容易被人为移动,并且当有新的提交时,它也会移动。分支很容易被改变,大部分分支还只是临时的,并且还一直在变。
有没有什么可以永远指向某个提交记录的标识呢,比如软件发布新的大版本,或者是修正一些重要的 Bug 或是增加了某些新特性,有没有比分支更好的可以永远指向这些提交的方法呢?
Git 的 tag 就是干这个用的啊,它们可以(在某种程度上 —— 因为标签可以被删除后重新在另外一个位置创建同名的标签)永久地将某个特定的提交命名为里程碑,然后就可以像分支一样引用了。
更难得的是,它们并不会随着新的提交而移动。你也不能检出到某个标签上面进行修改提交,它就像是提交树上的一个锚点,标识了某个特定的位置。
--------------

Git Describe
由于标签在代码库中起着“锚点”的作用,Git 还为此专门设计了一个命令用来描述离你最近的锚点(也就是标签),它就是 git describe!
Git Describe 能帮你在提交历史中移动了多次以后找到方向;当你用 git bisect(一个查找产生 Bug 的提交记录的指令)找到某个提交记录时,或者是当你坐在你那刚刚度假回来的同事的电脑前时, 可能会用到这个命令。

git describe 的​​语法是:
git describe <ref>
<ref> 可以是任何能被 Git 识别成提交记录的引用,如果你没有指定的话,Git 会以你目前所检出的位置(HEAD)。

它输出的结果是这样的:
<tag>_<numCommits>_g<hash>
tag_提交次数_g当前的hash
-------------

git bisect
git bisect是一个很有用的命令,用来查找哪一次代码提交引入了错误。
详情可参考 : http://www.ruanyifeng.com/blog/2018/12/git-bisect.html

------------
git blame

查看某行代码由谁写的,在哪个commit中提交的:
git blame fileName
其显示格式为:
commit ID ( 代码提交作者 | 提交时间 | 代码位于文件中的行数 | 实际代码 )
-------------------

选择父提交记录
操作符 ^ 与 ~ 符一样,后面也可以跟一个数字。

但是该操作符后面的数字与 ~ 后面的不同,并不是用来指定向上返回几代,而是指定合并提交记录的某个父提交。还记得前面提到过的一个合并提交有两个父提交吧,所以遇到这样的节点时该选择哪条路径就不是很清晰了。

Git 默认选择合并提交的“第一个”父提交,在操作符 ^ 后跟一个数字可以改变这一默认行为。

有一个合并提交记录。如果不加数字修改符直接检出 master^,会回到第一个父提交记录。

2818441996 发表于 2022-3-15 12:36

多谢分享

决不放弃 发表于 2022-3-15 12:39

我以为是做成了一个软件可以查呢,不过这样也行 收藏了

tigrexz 发表于 2022-3-15 13:06

非常感谢非常感谢

Thankyou 发表于 2022-3-15 13:06

学到了,谢谢分享,

新手学习52破解 发表于 2022-3-15 13:13

不错不错

nulla2011 发表于 2022-3-15 13:18

checkout学一下

雾都孤尔 发表于 2022-3-15 13:28

收藏了,有些命令老是记不住。感谢分享。

PncB2INYyoKw0l9 发表于 2022-3-15 13:35

收藏慢慢看

nihao3312 发表于 2022-3-15 13:37

这样也行 收藏了
页: [1] 2 3 4
查看完整版本: git常用命令速查