Git实践

Git在开发过程中的实用场景操作。

使用git怎么撤销本地(工作区)修改,暂存区修改,版本区(本地仓库)

一、手动合并冲突

手动合并 Git 冲突的步骤如下:

  1. 首先,使用 git status 命令查看哪些文件存在冲突。

  2. 然后,使用 git diff 命令查看冲突的具体内容,例如:

    1
    git diff <branch1> <branch2> -- <file>

    其中,<branch1><branch2> 分别表示要合并的两个分支,<file> 表示存在冲突的文件名。

  3. 打开冲突的文件,查看冲突的内容。Git 会在冲突的地方添加特殊的标记,例如:

    1
    2
    3
    4
    5
    <<<<<<< HEAD
    // 本地修改
    =======
    // 远程修改
    >>>>>>> branch2

    其中,HEAD 表示当前分支的修改,branch2 表示要合并的分支的修改。在这个例子中,======= 以上的部分是当前分支的修改,======= 以下的部分是要合并的分支的修改。

  4. 根据需要,选择保留哪些修改,删除哪些修改,或者进行修改。在解决冲突后,将文件保存并关闭。

  5. 使用 git add 命令将解决冲突后的文件添加到暂存区,例如:

    1
    git add <file>

    其中,<file> 表示解决冲突后的文件名。

  6. 最后,使用 git commit 命令提交合并后的代码,例如:

    1
    git commit -m "Merge branch1 and branch2"

    其中,-m 参数表示提交信息,用于描述本次提交的内容。

需要注意的是,解决冲突时需要仔细查看冲突的内容,并进行适当的修改。同时,解决冲突后需要将修改提交到 Git 仓库中,以便其他人能够获取到最新的代码。

二、修改代码前忘切换分支

在 Git 中,如果你在进行分支切换前有未提交的修改,可以使用以下命令将修改暂存起来:

1
git stash

这个命令会将当前工作目录中的所有修改暂存起来,并清空工作目录,使其回到干净的状态。暂存的修改会被保存在 Git 的一个栈中,可以使用以下命令查看:

1
git stash list

这个命令会列出所有暂存的修改,每个修改都有一个唯一的标识符。

如果你需要切换分支,可以使用以下命令:

1
git checkout <branch>

其中, 是要切换到的分支名称。

如果你需要恢复之前暂存的修改,可以使用以下命令:

1
git stash apply <stash>

其中, 是要恢复的修改的标识符。如果不指定标识符,则会恢复最近的一个修改。

需要注意的是,如果在恢复修改后发现有冲突,需要手动解决冲突后再提交修改。

四、合并提交——git变基

变基其实就是合并提交的过程,可以理解为将树的多个节点合并为一个节点。

在 Git 中,使用 git rebase 命令可以将当前分支的修改放到要变基的分支之后,形成一个新的提交。具体步骤如下:

  1. 首先,使用 git checkout 命令切换到要变基的分支,例如:

    1
    git checkout branch2

    其中,branch2 表示要变基的分支的名称。

  2. 然后,使用 git pull 命令从远程仓库拉取最新的代码,以便在变基之前使用最新的代码。

  3. 接着,使用 git rebase 命令将当前分支的修改放到要变基的分支之后,例如:

    1
    git rebase branch1

    其中,branch1 表示要变基的分支的名称。

  4. 如果在变基的过程中出现冲突,需要手动解决冲突并使用 git add 命令将修改添加到暂存区,然后使用 git rebase --continue 命令继续变基操作。

  5. 最后,使用 git push --force 命令将变基后的代码推送到远程仓库,例如:

    1
    git push --force origin branch2

    其中,--force 参数表示强制推送,用于覆盖远程仓库中的代码。需要注意的是,强制推送可能会覆盖其他人的修改,因此需要谨慎使用。

需要注意的是,变基操作会改变 Git 历史记录,因此需要谨慎使用。如果其他人已经基于当前分支进行了开发,那么变基操作可能会破坏他们的工作。因此,建议在进行变基操作之前与其他人进行沟通,并在变基之前备份代码。

七、实践

修改代码前,看一眼分支,pull一下

修改代码后,合并到st并push后马上切换回开发分支。

六、git的配置

6.1 gitconfig文件

(1)是什么?

.gitconfig 文件是 Git 的配置文件,在系统上一般位于用户主目录下。这个文件包含了 Git 的一些全局配置,例如 Git 用户名、邮箱地址、文本编辑器等。

(2)怎么用?

通过修改 .gitconfig 文件,可以定制 Git 的行为。下面是一些可以在 .gitconfig 文件中设置的常用配置:

  • user.name:设置 Git 的用户名,例如git config --global user.name "Your Name"
  • user.email: 设置 Git 的邮箱地址,例如 git config --global user.email "youremail@example.com"
  • core.editor:设置 Git 使用的文本编辑器,例如 git config --global core.editor "vim"
  • core.autocrlf:将文本文件在 Windows 和 Unix 之间自动进行换行符转换,以便在不同平台之间协作,例如git config --global core.autocrlf true
  • alias:自定义 Git 命令别名,例如 git config --global alias.st statusgit status 命令设置为 git st 命令的别名。

可以通过运行以下命令打开 .gitconfig 文件:

1
git config --global --edit

这将在系统中打开 Git 配置文件,可以进行编辑。在 .gitconfig 文件中进行修改后,新的设置会对所有 Git 仓库生效。

6.2 gitignore_global文件

(1)是什么?

.gitignore_global 文件是 Git 的全局忽略文件。在这个文件中写入的文件或文件夹将不会被 Git 追踪或提交到远程仓库中。这个文件不同于普通的 .gitignore 文件,它适用于所有的 Git 仓库,而不仅仅是单个项目。

.gitignore_global 文件的作用是防止 Git 追踪某些类型的文件或目录。例如,Windows 系统自动生成的 Thumbs.db 文件、macOS 下的 .DS_Store 文件以及 Python 等语言生成的 .pyc.pyo 文件等都可以在这个文件中被忽略。当对多个 Git 仓库工作时,这是非常有用的,可以避免在未意识到的情况下提交不必要的文件,从而节省仓库的空间和管理工作。

(2)怎么用?

要在 Git 中启用全局忽略文件,请在命令行中运行以下命令:

1
git config --global core.excludesfile ~/.gitignore_global

其中 ~/.gitignore_global.gitignore_global 文件的路径,可以根据实际情况修改路径。运行此命令后,Git 将不再追踪或提交 .gitignore_global 文件中列出的任何文件或目录。

(3)文件怎么配置?

~/.gitignore_global 文件中,您可以放置您希望在所有 Git 仓库中忽略的文件或文件夹的模式(通配符格式)。这将使 Git 忽略这些文件或文件夹,即使它们没有被放入 .gitignore 文件中。

例如,如果您希望 Git 在所有仓库中忽略 .DS_Store 文件和 __pycache__ 文件夹,可以创建一个 ~/.gitignore_global 文件,并在其中添加以下内容:

1
2
3
4
# Ignore all .DS_Store files
.DS_Store
# Ignore pycache directory
__pycache__/

然后,使用 git config 命令将路径添加到 Git 全局配置中,使其生效:

1
git config --global core.excludesfile ~/.gitignore_global

这样,在任何 Git 仓库中,都将忽略 .DS_Store 文件和 __pycache__ 文件夹。

作者

Desirer

发布于

2024-08-06

更新于

2024-08-06

许可协议