常用Git命令使用教程转载

原创
小哥 2年前 (2022-12-19) 阅读数 47 #大杂烩

常用Git命令使用教程

9.3k 次阅读 · 读完需要 29 分钟

26

0x00 写在前面

大多数开发团队现在 Git 作为您自己的版本控制工具,您需要 Git 用法非常熟悉。在本文中,我整理了开发过程中经常使用的内容。 Git 命令,方便偶尔忘记速度检查。使用 GUI 学习工具的学生也可以进行比较。

0x01 Git 配置

\1. 安装完成后 Git 之后,在正式使用之前,需要进行一些全局设置,例如用户名和电子邮件。

设置的主要命令是 git config :

git config --global user.name "your name"      // 设置全局用户名
git config --global user.email "your email"    // 设置邮箱

其中, --global 如果未使用此参数,则为当前仓库的配置。

\2. 除了用户名和邮箱,还有许多配置可以自定义。 Git,如:

git config --global color.ui true        // 让 Git 显示不同的颜色
git config core.ignorecase true            // 让 Git 仓库中的文件区分大小写

\3. 查看已进行的所有配置:

git config -l

0x02 基础操作

1. 创建 Git 版本库

在本地创建 Git 存储库,您需要使用 git init 命令。

首先,您需要创建一个新目录来存储版本库,然后输入目录的路径,然后执行:

git init

然后查看目录结构,您可以看到它包含 .git 子目录,这意味着存储库已成功创建。

2. 将文件添加到存储库

要在存储库管理中包含文件,请首先将其添加到暂存区域(此处没有深入介绍)在提交到仓库之前。

2.1 使用将文件添加到临时区域 git add

git add Readme.md        // 将单个文件添加到临时区域
git add .                // 将当前目录中的所有更改添加到临时区域,但根据规则忽略的更改除外。

注意:此处的空文件夹不会添加到临时区域。

2.2 将暂存区中的文件提交到仓库。需要使用 git commit

git commit        // 如果暂存区中有文件,请将其提交到仓库
git commit -m your comments         // 提交意见,用于解释提交内容、变更、影响等。

注意:此处直接使用 git commit 提交,将首先弹出页面添加评论。

3. 查看仓库的状态

无论是创建新文件、将文件添加到临时区域还是进行其他更改,我们都可以传递:

git status

随时查看仓库中文件的状态。这应该被使用。 Git 在进行版本控制的过程中,我最多使用一个命令。

4. 查看仓库中的特定更改

通常,我们会对文档进行更改,但很快就会忘记。这次你可以通过 git diff 查看具体更改。

git diff    // 查看存储库中的所有更改
git diff Readme.md        // 查看对特定文件的更改

5. 查看提交历史记录

有时,您需要查看您提交的内容,以查看您完成的内容。或者,您需要查找特定的提交以查看当时的代码。需要在此处使用:

git log     // 显示所有提交的历史记录
git log --pretty=oneline    // 在单行中显示提交历史记录的内容

git log 在的输出中,您可以看到每个提交。 ID,是一个 40 一串比特。

6. 版本回退

有了 git log 要查看提交历史记录,我们可以通过 git reset --hard 来回切换到我们需要的特定版本,然后使用当时的代码进行各种操作。

git reset --hard HEAD^        // 回滚到以前的提交版本
git reset --hard HEAD^^        // 回滚到以前的提交版本
git reset --hard commit_id    // 会退到 commit_id 指定的提交版本

7. 回到未来

返回到提交的版本后,通过 git log 在此之后无法显示提交信息。然而,通过 git reflog 可以获取操作命令的历史记录。

因此,想要回到未来,先通过 git reflog 从history命令中,找到要返回的提交版本。 ID然后通过 git reset --hard 来切换。

git reflog
git reset --hard commit_id

8. 撤销修改

撤消更改还包括两个方面,因为仓库中的文件可能位于工作区中,尚未处于版本控制中,或者在提交之前位于暂存区中。

8.1 放弃对工作区中文件的修改

git checkout -- Readme.md    // 如果 Readme.md 工作区中的文件,放弃其修改
git checkout -- .            // 放弃对当前目录下工作区中所有文件的修改

注意: git checkout -- 中的 -- 是必须的。

8.2 放弃已进入暂存区域的修改

git reset HEAD Readme.md // 将 Readme.md 恢复到 HEAD 提交版本的状态

9. 删除文件

在将文件添加到临时区域之前,可以直接物理删除要删除的文件。或通过 git checkout -- file 丢弃。如果文件已经提交,您需要 git rm 来删除:

git rm Readme.md // 删除已提交 Readme.md

注意: git rm 只能删除已提交到存储库的文件。其他状态的文件直接使用此命令操作是错误的。

git rm 与 先 rm 然后 git add 的区别

更多详细信息,请参阅: “git rm” 和 “rm” 的区别

注:上图中的结果为 git 1.9.1 版本上的操作。在里面 git 2.0 以上两者之间没有区别。

0x03 分支管理

分支是版本控制系统中一个非常重要的概念。 Git 中的新分支和合并分支的操作非常简单和方便,因此我们将经常使用它们。

1. 查看分支

查看分支使用情况 git branch

git branch        // 查看本地分支机构信息
git branch -v     // 查看相对详细的本地分支机构信息
git branch -av     // 查看分支机构信息,包括远程仓库

注意:在 git branch 在的输出中,前面有一个分支 * 这标识了我们当前所在的分支。

2. 创建分支

当我们要修复 Bug,或开发新功能,即使您害怕破坏原始代码,也可以创建新分支以避免对原始代码的影响。

git branch dev // 创建一个名为 dev 的分支

3. 切换分支

创建分支后,我们需要切换到新分支,否则,所有更改仍在原始分支上。事实上,所有更改只能影响当前分支。

git checkout dev // 新建完 dev 分支后,切换到 dev 分支

4. 创建和切换分支

git checkout -b dev // 新建 dev 分支,并切换到该分支

此命令将前两个单独的命令组合在一起,通常在正常使用中使用。

5. 合并分支

当我们完成维修时 Bug,或开发新功能,我们将 Bug 或者 功能的修改被合并回原始主分支,此时需要该分支。 git merge 进行分支合并。

首先,您需要切换回要合并到的分支,例如 master

git checkout master        // 切换回 master 分支
git merge dev            // 将 dev 分钟内的修改被合并回 master 分支

当合并回主分支时,稍后可能会发生冲突。这里不解释冲突的解决。

6. 删除分支

当先前创建的分支完成其任务时 Bug 修复完成并合并分支后,不再需要该分支,可以删除该分支。

git branch -d dev // 删除 dev 分支

0x04 远程仓库

以上所有命令都适用于本地仓库操作。当我们希望多人协作时,我们会将代码发布到统一的远程仓库,然后在多人本地操作后将其推送到远程仓库。当其他人协作时,他们需要在推送自己的修改之前同步远程仓库的内容。

1. 从远程存储库克隆

如果您没有本地存储库,并且希望从现有的远程存储库复制代码的副本,那么您需要 git clone

git clone https://github.com/git/git.git     // 通过 https 协议,克隆 Github 上 git 仓库的源代码
git clone linfuyan@github.com/git/git.git    // 通过 ssh 协议,克隆 Github 上 git 仓库的源代码

注意: git clone 以下仓库地址可以支持多种协议,例如 https, ssh 等。

2. 添加远程仓库

如果您已经有一个本地仓库,例如前面创建的仓库 git-guide 然后,您将远程发布它,供其他人协作。然后使用:

git remote add origin your_remote_git_repo // 将远程仓库添加到本地仓库

3. 将本地内容推送到远程存储库

当代码在本地仓库中提交时,需要将代码推送到远程仓库,以便其他合作者可以从远程仓库同步内容。

git push -u origin master // 用于第一次推送,可以简化后续推送或拉送命令的使用。
git push origin master    // 将本地 master 分支推送 origin 远程分支

注意: git push -u origin master 当你第一次使用它时,带上它。 -u 参数,在本地 master 分支推送远程新的 master 分支机构同时,还将 master 分支和远程 master 分支是链接的。

4. 从远程存储库获取最新内容

在多人协作的过程中,当您在本地仓库中完成提交时,需要获取远程仓库的最新内容,然后才能将其推送到远程仓库。

可以通过 git fetchgit pull 获取远程存储库的内容。

git fetch origin master    
git pull origin master

git fetchgit pull 区别:

  • git fetch 它只获取远程仓库的更新内容,不会自动合并。
  • git pull 在获得远程仓库的内容后,它会自动合并,这可以被视为 git fetch 之后 git merge

注意:建议使用更多 git fetch

5. 查看远程仓库信息

git remote [-v] // 显示远程仓库信息

6. 关联本地和远程分支

本地仓库的分支和远程仓库的分支对应。通常,远程存储库中的分支名称与本地存储库中分支名称相同。

有时,我们需要指定本地分支和远程分支之间的关联。

git branch --set-upstream local_branch origin/remote_branch

7. 修改本地仓库对应的远程仓库地址。

当远程仓库地址更改时,需要修改本地仓库对应的远程仓库地址。主要应用于 工程迁移 过程中。

git remote set-url origin url

0x05 标签管理

在项目开发过程中,当发布一个版本时,需要标记代码以供后续检索。出于其他原因,您需要在提交文件上添加特定标签。

1. 创建标签

git tag -a tagname -m comment commit_id

-a 参数指定标签名称, -m 添加备注信息, ‘commit_id’ 指定标记的提交。

2. 查看所有标记

git tag // 查看本地仓库中的所有标签

3. 查看特定标签信息

git show tagname

4. 删除本地标签

如果标记键入错误,或者不再需要标记,则可以将其删除。

git tag -d tagname

5. 删除远程标签

git push origin :refs/tags/tagname

git push origin --delete tagname

git push origin :tagname

6. 将标签推送到远程仓库

标签完成后,需要将其推送到远程仓库。

6.1 将单个标签推送到远程存储库

git push origin tagname

6.2 立即将所有标签推送到远程仓库。

git push origin --tags

0x06 进阶操作

1. 临时保存更改

在实施过程中 Git 在操作时,需要维护当前操作的是仓库。/分支处于 clean 状态,没有未提交的更改。这样的 git pullgit merge 等等,如果有未提交的更改,这些更改将无法运行。

但在执行这些操作时,您可能修改了很多代码,但不想放弃它。然后,您需要暂时保存这些更改,这些更改需要使用。 git stash

1.1 临时保存更改 ,以便仓库可以返回 clean 状态。

git stash // 在本地存储库中保存临时更改。

注:可以多次 git stash 保存不同的临时更改。

1.2 查看临时保存 。暂时保存时,仍需要稍后将其取回。他们在哪里?

git stash list // 显示所有临时修改

1.3 当我们完成处理其他操作时,我们希望恢复临时保存的更改。

git stash apply        // 还原所有保存的临时修改
git stash pop        // 恢复上次保存的临时修改

1.4 或者,如果我们觉得暂时不需要它,我们可以丢弃它。

git stash clear // 放弃所有保存的临时修改

0x07 写在最后

这些是我在当前项目中经常使用的操作。此处对其进行了整理,可作为手册使用。对于 Git 这里没有反映理解或更多解释。您可以参考其他更多信息。

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门