如何使用 Git:参考指南

点击查看Cheat Sheet

介绍

开发人员和开源软件维护团队通常通过Git来管理他们的项目,这是一个支持协作的分布式版本控制系统。

此 Cheat Sheet 风格指南提供了一个快速的参考,用于在 Git 存储库中工作和协作的命令. 要安装和配置 Git,请确保阅读[如何贡献开源:开始使用 Git](https://andsky.com/tech/tutorials/how-to-contribute-to-open-source-getting-started-with-git)

** 如何使用此指南:**

  • 此指南是 cheat sheet 格式,包含自含的命令行片段。
  • 跳到任何与您试图完成的任务相关的部分。
  • 当您在本指南的命令中看到突出文本,请记住,此文本应指向 your own repository中的委托和文件。

设置和初始化

使用以下命令检查您的 Git 版本,这也将确认 Git 已安装:

1git --version

Git 允许您配置一系列设置,这些设置将适用于本地计算机上的所有存储库,例如,配置一个用户名,Git 将使用它来归还您对本地存储库所做的任何更改:

1git config --global user.name “firstname lastname”

配置一个电子邮件地址与每个历史标记相关联:

1git config --global user.email “valid-email”

还可以设置您喜爱的文本编辑器:

1git config --global core.editor “nano”

您可以将当前的工作目录初始化为Git存储库,使用init:

1git init

要复制现有的远程托管的 Git 存储库,您将使用git 克隆与 Repo 的 URL 或服务器位置(在后一种情况下,您将使用ssh):

1git clone https://www.github.com/username/repo-name

显示当前 Git 目录的远程存储库:

1git remote

若要更简单的输出,请使用-v旗:

1git remote -v

添加上游的Git,它可以是URL,也可以在服务器上托管(在后一种情况下,连接到ssh):

1git remote add upstream https://www.github.com/username/repo-name

台阶

当您修改了文件并将其标记为下一个委托时,它将被视为一个阶段性文件。

检查您的 Git 存储库的状态,包括添加的未分配的文件和分配的文件:

1git status

要改變檔案,請使用「添加」命令,您可以在 commit 之前多次執行。

您可以用添加来指定特定文件:

1git add my_script.py

使用 . 可以添加当前目录中的所有文件,包括以 . 开头的文件:

1git add .

如果您想添加当前目录中的所有文件以及子目录中的文件,您可以使用-all-A旗帜:

1git add -A

您可以从舞台中删除文件,同时使用重置来保留工作目录中的更改:

1git reset my_script.py

承诺

一旦您已经安排了您的更新,您已经准备好承诺他们,这将记录您对存储库所做的更改。

要執行階段檔案,您將執行「執行」命令與有意義的執行訊息,以便您可以追蹤執行:

1git commit -m "Commit message"

您可以将所有追踪的文件集中在一个步骤中:

1git commit -am "Commit message"

如果您需要更改您的委托信息,您可以使用--amend旗进行更改:

1git commit --amend -m "New commit message"

行业

Git 中的分支是一个可移动的指针,指向存储库中的一个承诺,它允许您分离工作并管理功能开发和整合,您可以通过阅读 Git 文档来了解更多有关分支的信息。

使用分支命令列出所有当前分支。 一个星座(*)将出现在您当前活跃的分支旁边:

1git branch

创建一个新的分支机构. 您将留在当前活跃的分支机构中,直到您切换到新的分支机构:

1git branch new-branch

切换到任何现有分支机构,并检查到当前的工作目录:

1git checkout another-branch

您可以通过使用-b旗帜来巩固新分支的创建和支出:

1git checkout -b new-branch

重命名您的分支名称:

1git branch -m current-branch-name new-branch-name

将指定的分支的历史合并到您目前正在工作的分支:

1git merge branch-name

堕胎合并,如果有冲突:

1git merge --abort

您还可以选择一个特定的 commit 合并到 cherry-pick 与引用特定的 commit 的字符串:

1git cherry-pick f7649d0

当您合并了分支机构并不再需要该分支机构时,您可以删除它:

1git branch -d branch-name

如果您尚未将分支部合并到主部,但确定要删除它,则可以 force 删除分支部:

1git branch -D branch-name

合作与更新

要从另一个存储库下载更改,例如远程上游,您将使用fetch:

1git fetch upstream

请注意,某些存储库可能使用而不是:

1git merge upstream/main

将本地分支机构承诺推到远程存储机构分支机构:

1git push origin main

从追踪远程分支中获取和合并任何委托:

1git pull

检查

显示当前活跃分支机构的委托历史:

1git log

顯示變更特定檔案的承諾,以下是該檔案,無論檔案的重命名:

1git log --follow my_script.py

显示在一个分支而不是在另一个分支上的承诺,这将显示在a分支上的承诺,而不是在b分支:

1git log a-branch..b-branch

查看参考日志(‘reflog’)以查看分支和其他参考的提示在存储库中最后一次更新时:

1git reflog

通过其 commit 字符串或 hash 显示 Git 中的任何对象,以更易于人读的格式:

1git show de754f5

显示变化

「git diff」命令顯示了承諾、分支等之間的變化,您可以透過 Git 文件閱讀更多關於此的內容。

比较在舞台区域中的修改文件:

1git diff --staged

显示在a 分支中,但不是在b 分支中的分支:

1git diff a-branch..b-branch

顯示兩個特定承諾之間的差異:

1git diff 61ce3e6..e221d9c

通过从项目中删除一个文件来跟踪路径的变化,并将此删除为 commit:

1git rm file

或者更改现有文件路径,然后步骤移动:

1git mv existing-path new-path

检查委托日志,看看是否已移动任何路径:

1git log --stat -M

站立

有时你会发现你对某些代码进行了更改,但在完成之前,你必须开始工作。你还没有完全准备好执行你迄今为止所做的更改,但你不想失去工作。

整理你的当前工作:

1git stash

看看你目前所拥有的:

1git stash list

你的藏品将被命名为stash@{0},stash@{1},等等。

显示有关特定 stash 的信息:

1git stash show stash@{0}

要将当前存储库中的文件从存储库中带出,同时仍然保留存储库,请使用应用:

1git stash apply stash@{0}

如果您想将文件从存储库中带出,并且不再需要存储库,请使用pop:

1git stash pop stash@{0}

如果您不再需要存储在特定存储库中的文件,您可以放下存储库:

1git stash drop stash@{0}

如果您存储了多个存储,并且不再需要使用其中任何一个,您可以使用清除来删除它们:

1git stash clear

无视档案

如果您想在本地 Git 目录中保留文件,但不想将其委托到项目中,您可以将这些文件添加到您的.gitignore 文件中,以免导致冲突。

使用 nano 等文本编辑器将文件添加到.gitignore 文件中:

1nano .gitignore

要查看.gitignore 文件的示例,您可以查看 GitHub 的 `.gitignore 模板复制

复兴

一个 rebase 允许我们通过改变他们基于的 commit 来移动分支。

您可以通过拨打您想要转换的承诺数量(在下面的例子中‘5’)开始转换:

1git rebase -i HEAD~5

或者,您可以根据特定的 commit 字符串或 hash 来重新分类:

1git rebase -i 074a4e5

一旦您已编辑或重新编写承诺,您可以在项目上流代码的最新版本上完成分支的重新编辑,请注意一些存储库可能使用而不是:

1git rebase upstream/main

若要了解有关重组和更新的更多信息,请参阅 如何重组和更新推送请求,这也适用于任何类型的委托。

重置和重置

您可以通过使用重置来逆转您对某一委托所做的更改,您的工作树必须清洁才能实现:

1git revert 1fc6665

有时,包括在转换之后,您需要重置工作树. 您可以重置到特定 commit,并使用以下命令 删除所有更改:

1git reset --hard 1fc6665

要强制将您已知的最后一个非冲突的承诺推到源存储库,您需要使用 --force:

<$>[警告] 警告:强力推向主要(有时是)分支部通常会被压制,除非有真正重要的理由这样做。

1git push --force origin main

要从Git目录中删除本地未跟踪的文件和子目录,您可以使用git clean:

1git clean -f -d

如果您需要修改本地存储库以使其看起来像当前的上游主分支(即太多的冲突),您可以执行一个硬重置:

<$>[注] **注 **:执行此命令将使您的本地存储库看起来完全像上游。

1git reset --hard upstream/main

结论

本指南涵盖了您在管理库和协作软件时可能使用的一些更常见的 Git 命令。

您可以在我们的 介绍开源教程系列中了解更多关于开源软件和协作的信息:

有许多更多的命令和变体,你可能觉得有用作为你与Git的工作的一部分. 要了解更多关于你所有的可用选项,你可以运行以下操作,以获得有用的信息:

1git --help

您还可以阅读更多关于Git的信息,并从官方Git网站(https://git-scm.com/)查看Git的文档。

Published At
Categories with 技术
comments powered by Disqus