Git 命令大全:解锁代码版本控制的神奇秘密!
以下是备忘单中的所有命令:
设置
设置将附加到提交和标记的名称和电子邮件
$ git config --global user.name "Danny Adams"
$ git config --global user.email "[email protected]"
使用 Git 启动项目
创建本地存储库(省略以将当前目录初始化为 git 存储库)
<directory>
$ git init <directory>
下载远程存储库
$ git clone <url>
做出改变
将文件添加到暂存
$ gitadd<file>
暂存所有文件
$ gitadd.
将所有暂存文件提交到 git
$ git commit -m"commit message"
添加对跟踪文件所做的所有更改并提交
$ git commit -am"commit message"
基本 Git 概念
- main:默认开发分支
- origin:默认上游存储库
- HEAD:当前分支
- HEAD^:HEAD 的父级
- HEAD~4:HEAD的曾曾祖
分支
列出所有本地分支。添加标志以显示所有远程分支。 标志。
-r``-a
$ git branch
创建新分支
$ git branch <new-branch>
切换到分支并更新工作目录
$ git checkout <branch>
创建一个新分支并切换到该分支
$ git checkout -b<newbranch>bash
删除合并的分支
$ git branch -d<branch>
删除分支,无论是否合并
$ git branch -D<branch>
向当前提交添加标签(通常用于新版本发布)
$ git tag <tag-name>
合并
将分支合并到分支中。添加无快进合并选项
a``b``--no-ff
$ git checkout b
$ git merge a
将所有提交合并并压缩为一个新提交
$ git merge --squash a
变基
将功能分支重基到 main 上(以合并对 main 所做的新更改)。防止不必要的合并提交到功能中,保持历史记录整洁
$ git checkout feature
$ git rebase main
在将分支变基到 main 之前以交互方式清理分支提交
$ git rebase -i main
以交互方式将最后 3 个提交变基到当前分支
$ git rebase -i Head~3
撤消操作
移动(&/或重命名)文件和舞台移动
$ gitmv<existing_path><new_path>
从工作目录和暂存区域删除文件,然后暂存删除
$ gitrm<file>
仅从暂存区移除
$ gitrm--cached<file>
查看上一次提交(只读)
$ git checkout <commit_ID>
创建一个新的提交,从指定的提交中恢复更改
$ git revert <commit_ID>
返回到上一个提交并删除之前的所有提交(恢复更安全)。添加标志以同时删除工作区更改(非常小心)
--hard
$ git reset <commit_ID>
查看存储库
列出尚未提交的新文件或修改的文件
$ git status
列出提交历史记录,以及相应的 ID
$ git log --oneline
显示对未暂存文件的更改。对于暂存文件的更改,请添加选项
--cached
$ gitdiff
显示两次提交之间的更改
$ gitdiff commit1_ID commit2_ID
藏匿
存储修改和暂存的更改。若要包含未跟踪的文件,请添加标志。对于未跟踪和忽略的文件,请添加标志。
-u``-a
$ git stash
如上所述,但添加注释。
$ git stash save "comment"
部分藏匿。仅存储单个文件、文件集合或文件中的单个更改
$ git stash -p
列出所有藏匿处
$ git stash list
重新应用存储而不删除它
$ git stash apply
在索引 2 处重新应用存储,然后将其从存储列表中删除。省略弹出最近的存储。
stash@{n}
$ git stash pop stash@{2}
显示存储 1 的差异摘要。传递标志以查看完整的差异。
-p
$ git stash show stash@{1}
删除索引 1 处的存储。省略删除上次存储的内容
stash@{n}
$ git stash drop stash@{1}
删除所有存储
$ git stash clear
同步
添加远程存储库
$ git remote add<alias><url>
查看所有远程连接。添加标志以查看 URL。
-v
$ git remote
删除连接
$ git remote remove <alias>
重命名连接
$ git remote rename<old><new>
从远程存储库获取所有分支(无合并)
$ git fetch <alias>
获取特定分支
$ git fetch <alias><branch>
获取当前分支的远程存储库副本,然后合并
$ git pull
将本地更改(变基)到对远程存储库所做的新更改的顶部(用于干净的线性历史记录)
$ git pull --rebase<alias>
将本地内容上传到远程存储库
$ git push <alias>
上传到分支(然后可以拉取请求)
$ git push <alias><branch>
git remote rename
从远程存储库获取所有分支(无合并)
```bash
$ git fetch <alias>
获取特定分支
$ git fetch <alias><branch>
获取当前分支的远程存储库副本,然后合并
$ git pull
将本地更改(变基)到对远程存储库所做的新更改的顶部(用于干净的线性历史记录)
$ git pull --rebase<alias>
将本地内容上传到远程存储库
$ git push <alias>
上传到分支(然后可以拉取请求)
$ git push <alias><branch>
欢迎点赞,评论,关注~
版权归原作者 代码炼金术 所有, 如有侵权,请联系我们删除。