Git专栏篇
一、基础知识
二、常用手段
1. 复制其他提交到本分支
目的:现有git仓库,该仓库有两个分支a和b,将a分支的最近三个版本提交内容复制 到b分支的提交上。
在 Linux 系统中,你可以按照以下步骤将分支 A 的最近三个版本的提交内容复制到分支 B 的提交上:
-
切换到分支 B:打开终端,并进入你的 Git 仓库所在的目录。然后使用以下命令切换到分支 B:
git checkout b
-
查看分支 A 的最近三个提交:使用以下命令查看分支 A 的最近三个提交的 commit ID:
git log --oneline a -n 3
这将会显示分支 A 的最近三个提交及其对应的 commit ID。
-
将分支 A 的提交复制到分支 B:使用以下命令将分支 A 的最近三个提交复制到分支 B:
git cherry-pick <commit_id_1> <commit_id_2> <commit_id_3>
在上述命令中,将
<commit_id_1>
、<commit_id_2>
和<commit_id_3>
替换为分支 A 最近三个提交的 commit ID。这将会将这三个提交的更改应用到分支 B 上。
请注意,在执行 git cherry-pick
命令之前,确保你已经在分支 B 上,并且已经完成了所有必要的合并和冲突解决。此外,cherry-pick 操作可能会导致提交的 SHA-1 值发生变化,因此在将更改应用到另一个分支之后,你可能需要进行相应的调整和处理。
在进行任何 Git 操作之前,请确保备份重要的代码和数据,以防止意外情况的发生。
注意:当两者基础代码框架不同时,可能cherry-pick不成功,需要手动修改。
2. git show版本,不看具体修改,只看文件名称
你可以使用 --name-only
选项来查看 Git 中某个版本中所修改、添加或删除的文件列表。这个选项会在 Git 显示提交信息和更改内容之前,先显示出所涉及的文件列表。
以下是一个示例:
git show --name-only <commit_id>
其中 <commit_id>
是要查看的提交的 SHA-1 标识符。执行这个命令后,Git 会显示出指定提交所涉及的所有文件名称。
需要注意的是,如果一个提交中修改了多个文件,这个命令会将这些文件名全部列出,每个文件名占一行。
另外,如果想查看某个提交中详细的修改内容,可以使用 git show <commit_id>
命令,这个命令会显示指定提交的详细信息,包括作者、提交时间、提交说明和更改内容等。如果只想查看某个文件的修改历史,可以使用 git log <file_path>
命令来查看。
3. .gitignore忽略文件或目录
.gitignore 是一个文本文件,作用是指定 Git 控制系统需要忽略的文件或目录。在创建 .gitignore 文件时,你可以指定要忽略的文件、文件夹或者正则表达式。
以下是一些常见的 .gitignore 规则:
- 忽略文件夹:
/folder/
- 忽略特定文件:
file.txt
- 忽略所有
.txt
文件:*.txt
- 忽略以
tmp
开头的文件:tmp*
- 忽略以
~
结尾的文件:*~
- 忽略所有
.log
文件:*.log
- 忽略所有
.zip
文件:*.zip
如果你想忽略所有的 .log
和 .zip
文件,你可以在 .gitignore 文件中添加以下内容:
*.log
*.zip
如果你想忽略某个文件夹中的所有文件(包括子文件夹中的文件),你可以在 .gitignore 文件中添加以下内容:
folder/
如果你只想忽略某个文件夹中的特定文件,你可以使用以下规则:
folder/file1.txt
folder/file2.txt
如果你想忽略所有的 .tmp
文件和以 ~
结尾的文件,你可以在 .gitignore 文件中添加以下内容:
*.tmp
*~
需要注意的是,.gitignore 文件只会影响未被添加到 Git 中的文件。如果某个文件已经被添加到 Git 中,那么即使在 .gitignore 文件中指定忽略该文件,Git 仍然会对该文件进行版本控制。