备忘单
引言
开发人员和开发开源软件维护人员通常通过 Git 管理他们的项目,Git 是一个支持协作的开发分散式版本控制。
这个备忘单样式的指南提供了对在 Git 存储库中工作和协作有用的命令的快速参考。 要安装和配置 Git,请确保阅读“ How To contribution To Open Source: Getting Started with Git”
如何使用本指南:
- 本指南采用备忘单格式,具有自包含的命令行代码段。
- 跳转到任何与您要完成的任务相关的部分。
- 当您在本指南的命令中看到突出显示的文本时,请记住该文本应该引用您自己的存储库中的提交和文件。
设置和初始化
使用以下命令检查您的 Git 版本,这也将确认 Git 已经安装。
- git --version
您可以使用 init 初始化当前的工作目录库为 Git 存储库。
- git init
要远程复制现有的 Git 存储库,您需要使用 Git 克隆和 repo 的 URL 或服务器位置(在后一种情况下,您需要使用 ssh)。
- git clone https://www.github.com/username/repo-name
显示当前 Git 目录的远程存储库。
- git remote
要获得更详细的输出,请使用-v 标志。
- git remote -v
添加 Git 上游,它可以是 URL,也可以托管在服务器上(在后一种情况下,连接 ssh)。
- git remote add upstream https://www.github.com/username/repo-name
分期
当您修改了一个文件并将其标记为在下一次提交时提交时,它被认为是一个暂存文件。
检查 Git 存储库的状态,包括添加的非暂存文件和暂存文件。
- git status
若要处理修改的文件,请使用 add 命令,您可以在提交之前多次运行该命令。 如果进行了希望在下次提交中包含的后续更改,则必须再次运行 add。
可以使用 add 指定特定的文件。
- git add my_script.py
用。 你可以添加工作目录中的所有文件,包括以。 .
- git add .
你可以从暂存中移除文件,同时用重置保留你工作目录中的更改。
- git reset my_script.py
承诺
一旦已经分段了更新,就可以提交它们了,这将记录您对存储库所做的更改。
要提交暂存文件,您将运行带有有意义的提交消息的提交命令,以便跟踪提交。
- git commit -m "Commit message"
通过一步提交所有跟踪文件,可以压缩所有跟踪文件。
- git commit -am "Commit message"
如果需要修改提交消息,可以使用 -- amend 标志。
- git commit --amend -m "New commit message"
树枝
Git 中的一个分支是一个可移动的指针,指向存储库中的一个提交,它允许您隔离工作并管理特性开发和集成。 您可以通过阅读 Git 文档了解更多关于分支的信息。
使用 branch 命令列出所有当前分支。 一个星号(*)将出现在当前活动的分支旁边。
- git branch
创建一个新的分支。在切换到新的分支之前,您将保持在当前活动的分支上。
- git branch new-branch
切换到任何现有的分支,并将其签入您当前的工作目录。
- git checkout another-branch
您可以使用 -b 标志合并新分支的创建和签出。
- git checkout -b new-branch
重命名分支名称。
- git branch -m current-branch-name new-branch-name
将指定分支的历史记录合并到当前正在使用的分支历史记录中。
- git merge branch-name
如果发生冲突,则中止合并。
- git merge --abort
您还可以选择一个特定的提交,以便与引用特定提交的字符串进行合并。
- git cherry-pick f7649d0
当您已经合并了一个分支并且不再需要该分支时,您可以删除它。
- git branch -d branch-name
如果您还没有将分支合并到主服务器,但是确定要删除它,您可以强制删除分支。
- git branch -D branch-name
协作和更新
要从其他存储库(如远程上游存储库)下载更改,您将使用 fetch。
- git fetch upstream
合并获取的提交。
- git merge upstream/master
将本地分支提交推送或传输到远程存储库分支。
- git push origin master
从跟踪远程分支获取并合并任何提交。
- git pull
检查
显示当前活动分支的提交历史记录。
- git log
显示更改特定文件的提交。不管文件是否重命名,这都会跟随文件。
- git log --follow my_script.py
显示一个分支上而不是另一个分支上的提交。 这将显示在不在 b 分支上的-分支上的提交。
- git log a-branch..b-branch
查看引用日志(reflog) ,看看分支和其他引用的提示最后一次在存储库中更新是什么时候。
- git reflog
在 Git 中通过提交字符串或散列以更具人类可读性的格式显示任何对象。
- git show de754f5
显示变化
Git diff 命令显示了提交、分支和更多内容之间的更改。 您可以通过 Git 文档阅读更多关于它的内容。
比较临时区域中已修改的文件。
- git diff --staged
显示在-分支中但不在 b 分支中的差异。
- git diff a-branch..b-branch
显示两个特定提交之间的差异。
- git diff 61ce3e6..e221d9c
储藏
有时候你会发现你修改了一些代码,但是在你完成之前你必须开始做一些其他的事情。 您还没有完全准备好提交到目前为止所做的更改,但是您不想失去您的工作。 Git stash 命令将允许您保存本地修改,并返回到与最近的 HEAD 提交一致的工作目录。
把你现在的工作藏起来。
- git stash
看看你现在藏了什么。
- git stash list
你的藏品将被命名为 [email protected]{0} ,[email protected]{1} ,等等。
显示特定藏匿点的信息。
- git stash show [email protected]{0}
使用 apply 可以在保留隐藏文件的同时将当前隐藏文件从隐藏文件中移出。
- git stash apply [email protected]{0}
如果你想把文件从藏匿处拿出来,而且不再需要藏匿处,使用弹出窗口。
- git stash pop [email protected]{0}
如果你不再需要文件保存在一个特定的存储,你可以放下存储。
- git stash drop [email protected]{0}
如果您已经保存了多个存储区,并且不再需要使用其中的任何一个,您可以使用 clear 来删除它们。
- git stash clear
忽略文件
如果希望将文件保存在本地 Git 目录中,但又不想将它们提交到项目中,可以将这些文件添加到。 这样他们就不会引起冲突。
使用文本编辑器(比如 nano)将文件添加到.gidignore 文件中。
- nano .gitignore
要查看.gidignore 文件的示例,可以查看 GitHub 的.gidignore 模板 repo。
改变基线
Rebase 允许我们通过更改分支所基于的提交来移动分支。 使用 rebase,你可以压制或者重写提交。
您可以通过调用希望重新建立基数的提交次数(在下面的例子中是5次)来启动重新建立基数。
- git rebase -i HEAD~5
或者,您可以基于特定的提交字符串或散列重新建立基。
- git rebase -i 074a4e5
一旦你已经压缩或者改写了提交,你可以在最新版本的项目上游代码的基础上完成你的分支的重建。
- git rebase upstream/master
要了解更多有关基础转移和更新的信息,可以阅读《如何重建基础和更新拉请求》 ,这本书也适用于任何类型的提交。
重置
有时候,包括在重新基础之后,您需要重新设置工作树。 可以使用以下命令重置为特定的提交,并删除所有更改。
- git reset --hard 1fc6665
要强制将最后一个已知的非冲突提交推送到原始存储库,您需要使用 -- force。
警告: 除非有非常重要的原因,否则强迫自己掌握通常是不被认可的。 当你在自己的仓库上工作时,尽量少用,当你在合作的时候尽量避免这样做。
- git push --force origin master
要从 Git 目录中删除本地未跟踪的文件和子目录以获得一个干净的工作分支,您可以使用 Git clean。
- git clean -f -d
如果您需要修改本地存储库,使其看起来像当前的上游主存储库(也就是说,存在太多冲突) ,您可以执行硬重置。
注意: 执行此命令将使您的本地存储库看起来与上游存储库完全一样。 任何你已经完成但是没有被拖到上游的任务都将被销毁。
- git reset --hard upstream/master
总结
本指南涵盖了您在管理存储库和软件协作时可能使用的一些更常见的 Git 命令。
你可以在我们的开源入门教程系列中学到更多关于开源软件和协作的知识:
- 如何为开源贡献力量: 从 Git 开始
- 如何在 GitHub 上创建一个 Pull 请求
- 如何重新基础和更新拉请求
- 如何维护开源软件项目
还有许多命令和变体,您可能会发现它们在您使用 Git 的工作中非常有用。 要了解更多关于所有可用选项的信息,你可以运行:
- git --help
接收有用的信息。 您还可以阅读更多关于 Git 的内容,并从 Git 官方网站上查看 Git 的文档。