深入探索Git:SourceTree、Eclipse与git config命令
1. SourceTree与Eclipse实践
在这个实践中,我们将继续探索SourceTree和Eclipse(结合Git)的使用。
- 创建新仓库并添加文件 :在SourceTree中,从头创建一个新的仓库,并向其中添加一个文件。
- 分支切换 :在SourceTree或Eclipse中,进行分支切换。通过在 math 目录的命令行中查看 git branch 的输出,确认你已切换到不同的分支。需要注意的是,除了使用SourceTree或Eclipse,你也可以使用Git原生工具。
- 尝试git - flow支持 :SourceTree内置了对git - flow的支持。点击Git Flow图标,程序会提示你输入分支名称和前缀,然后将所选仓库转换为使用git - flow的仓库。转换完成后,再次点击Git Flow图标,你将看到启动新特性、新版本或紧急修复的git - flow选项,可按照之前的操作进行尝试。
2. 引入git config命令
git config 命令是Git高级技术的关键命令。它可以创建别名、修改某些Git命令的行为并扩展其功能。许多Git特性由Git配置变量控制,而 git config 命令用于操作这些变量,因此了解这些变量是什么、存储位置以及如何更改它们非常重要。
2.1 使用Git配置变量
Git配置变量控制着Git的行为。有些设置是外观方面的,例如 git log 命令中显示分支的颜色;有些则控制Git的行为,如 push.default 。
- 查看配置变量 :可以通过以下方式查看其他配置变量:
- 在命令行中输入: git config --help
- 或者在浏览器中访问:https://git - htmldocs.googlecode.com/git/git - config.html
在更改任何设置之前,你应该了解Git配置的优先级顺序。
2.2 理解Git配置的优先级顺序
Git配置有三个级别:本地、全局和系统。本地级别设置的配置优先级最高,其次是全局,最后是系统。在Git配置的上下文中,本地指当前仓库(特定于仓库),全局指可应用于你所控制的所有仓库,系统指服务器范围。
- 查看各级配置 :进入 math 目录,通过以下命令列出各级配置:
cd $HOME/math
git config --local --list
git config --global --list
git config --system --list
通常,至少会从两个 git config 命令中看到输出(系统配置通常为空)。例如,本地配置可能如下:
> git config --local --list
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
全局配置可能如下:
> git config --global --list
user.name=Rick Umali
user.email=rumali@firstfuel.com
core.excludesfile=/Users/rumali/.gitignore_global
core.editor=vim
alias.lol=log --graph --oneline --all --decorate --simplify-by-decoration
color.ui=auto
color.diff=true
push.default=simple
gui.recentrepo=/Users/rumali/git - test
系统配置可能会出现错误,如:
> git config --system --list
fatal: unable to read config file '/usr/local/etc/gitconfig': No such file or directory
这意味着没有服务器级别的配置,通常这些配置由系统管理员设置。
每个配置以 name = value 的形式指定,名称通常用句点分隔。在Git中,第一个句点之前的字符串被视为节,之后的字符串为键。例如,在 user.name = Rick Umali 中, user 是节, name 是键。当有两个句点时,倒数第二个句点分隔节和键。
2.3 临时设置Git配置
在这部分,我们将修改 git log 命令显示每个提交消息的日期和时间戳的方式,这是一种外观配置,易于进行实验。
- 临时设置配置变量 :在命令行中输入:
cd $HOME/math
git -c log.date=relative log -n 2
输出可能如下:
commit 7e8e188384ad0cd36af07f6035a1da7ac55b02cb
Author: Rick Umali <rickumali@gmail.com>
Date: 10 days ago
Renaming c and d.
commit 2b12d3e602ea24d893b1c870d2f46f155d9dea11
Author: Rick Umali <rickumali@gmail.com>
Date: 10 days ago
Removed a and b.
通过 -c 开关,我们临时覆盖了配置,改变了 git log 命令的行为。这种方式是测试不熟悉配置的好方法。
2.4 永久设置Git配置
前面设置的 log.date = relative 是临时的。若要使此配置更改永久生效,必须使用 git config 命令进行设置。
- 本地永久设置 :在 math 仓库中,输入以下命令:
git config --local log.date relative
之后,每次访问此仓库时, git log 将使用相对日期格式。再输入 git log -n 2 ,输出应与前面临时设置时相同。
- 全局永久设置 :若要使此更改适用于你访问的任何仓库,使用 --global 开关代替 --local 开关。在实践中,建议先在本地保存测试开关( --local 开关是默认的,可省略),然后再将其提升为全局设置。
2.5 重置Git配置
若要恢复某个配置设置的Git默认值,可以取消设置该值。
- 重置配置 :在 math 仓库中,输入以下命令:
git config --local --unset log.date
再输入 git log -n 2 ,日期将恢复为原始格式。
3. 处理Git配置文件
最终,Git配置存储在纯文本文件中,以下是典型的存储位置:
| 位置 | 路径 | 说明 |
| — | — | — |
| 本地 | $GIT_DIR/config | $GIT_DIR 表示仓库的工作目录 |
| 全局 | $HOME/.gitconfig | 位于主目录 |
| 系统 | Windows: C:/Program Files (x86)/Git/etc/gitconfig
Mac: /Applications/Xcode.app/Contents/Developer/usr/etc/gitconfig
Unix/Linux: /etc/gitconfig | 可能因Git安装方式而异 |
如果你坚持使用标准的 git config 命令,并使用 --local 、 --global 和 --system 开关,就不必担心这些文件的位置。但你也可以检查甚至编辑配置文件。
3.1 编辑Git配置文件
现在你知道了Git配置文件的位置,可以使用你喜欢的编辑器直接编辑它们。如果要进行大量更改,直接编辑文件可能是个不错的选择。一些Git命令使用配置文件语法来记录其配置,因此直接编辑文件会使文档更易于遵循。
- 编辑本地配置文件 :在 math.github 工作目录中,输入以下命令:
cd $HOME/math.github
git config --local --edit
这将立即在 vi 编辑器中打开配置文件。若不确定是否进行了更改且不想保存可能编辑的内容,可以输入 :q! 退出编辑器。
3.2 使用Git配置文件语法
Git配置文件有特定的语法。节用方括号标记(例如 [core] ),有些名称有子节(例如 [remote "origin"] )。键和值缩进在相应节的下方。文件格式还支持注释,通过在单行字符串前放置 # 或 ; 来实现,例如:
#
# Comments
#
; User identity
[user]
; personal detail
name = "Rick Umali"
email = "rickumali@gmail.com"
可以通过以下命令分别查看全局和系统配置文件:
git config --global --edit
git config --system --edit
查看后记得输入 :q! 退出文件。
4. 配置Git的默认编辑器
在之前的使用中,你一直使用Git默认配置的编辑器。现在学习了 git config ,可以通过配置 core.editor 配置设置,为特定仓库或全局(甚至整个系统)覆盖默认编辑器。
core.editor 配置值是编辑器的名称,通常该编辑器已在你的 PATH 中,你可以直接输入其名称来启动它。 core.editor 设置的值会在命令行中被替换,例如 $(core.editor) temp_file ,其中 temp_file 通常是包含提交消息或Git配置文件的临时文件。
- 查看配置文件位置 :从
math或math.github目录,输入以下命令:
cd $HOME/math
git -c core.editor=echo config --local --edit
如果一切顺利,屏幕将返回配置文件的路径,如 c:/Users/Rick/Documents/gitbook/math/.git/config 。这是因为 -c 开关使Git用命令行提供的值覆盖了 core.editor ,在 git config 命令中,配置文件的名称被传递给 core.editor ,由于 core.editor 设置为 echo 命令,所以最终打印出了文件的名称。还可以通过以下命令查看全局和系统配置文件的位置:
git -c core.editor=echo config --global --edit
git -c core.editor=echo config --system --edit
5. 不同系统更改默认编辑器
5.1 Windows用户
- 安装Notepad++ :从 http://notepad - plus - plus.org/download/v6.7.4.html 安装Notepad++。确保可执行文件能正常启动。
- 修改初始化文件 :编辑命令行的初始化文件(
.bash_profile或.bashrc,位于$HOME目录),在文件底部添加以下行:
PATH="$PATH:/c/Program Files (x86)/Notepad++"
保存文件后,退出并重新启动Git BASH。输入 which notepad++ ,响应应如下:
/c/Program Files (x86)/Notepad++/notepad++
- 临时设置编辑器 :进入
math.github目录,输入以下命令:
cd $HOME/math.github
git -c core.editor=notepad++ --local --edit
此时会出现一个GUI编辑器,显示本地仓库的配置。退出编辑器后,输入以下命令使更改永久生效:
git config --local core.editor notepad++
之后在该仓库中进行需要 core.editor 的编辑时,将使用Notepad++而不是 vi 。如果遇到困难,可以在 core.editor 设置中使用完整路径值。
5.2 Mac和Unix/Linux用户
- 检查nano编辑器 :假设
nano已在你的路径中,输入nano,应出现一个编辑器窗口,窗口底部的行显示了编辑器的操作方法(^表示Ctrl键)。按Ctrl - X退出。 - 临时设置编辑器 :进入
math.github目录,输入以下命令:
cd $HOME/math.github
git -c core.editor=nano config --local --edit
这将使用 -c 开关临时设置编辑器。之后,在该仓库中进行需要 core.editor 的编辑时,将使用 nano 而不是 vi 。
通过以上步骤,你可以更深入地掌握Git的使用,灵活配置Git以满足不同的需求。
graph LR
A[开始] --> B[SourceTree与Eclipse实践]
B --> C[引入git config命令]
C --> D[处理Git配置文件]
D --> E[配置Git默认编辑器]
E --> F[不同系统更改默认编辑器]
F --> G[结束]
深入探索Git:SourceTree、Eclipse与git config命令
6. 总结与回顾
在前面的内容中,我们详细介绍了如何在SourceTree和Eclipse中进行仓库操作、分支切换,深入学习了 git config 命令的使用方法,包括临时和永久设置配置、重置配置,还了解了Git配置文件的存储位置、语法以及如何编辑它们,最后针对不同系统介绍了更改Git默认编辑器的方法。下面我们通过一个表格来总结这些重要内容。
| 操作类型 | 具体操作 | 命令示例 |
|---|---|---|
| SourceTree与Eclipse操作 | 创建新仓库并添加文件 | 在SourceTree中从头创建仓库并添加文件 |
| 分支切换 | 在SourceTree或Eclipse中切换分支,通过 git branch 命令确认 | |
| git config命令 | 查看配置变量 | git config --help 或访问 https://git - htmldocs.googlecode.com/git/git - config.html |
| 临时设置配置 | git -c log.date=relative log -n 2 | |
| 永久设置本地配置 | git config --local log.date relative | |
| 永久设置全局配置 | git config --global log.date relative | |
| 重置配置 | git config --local --unset log.date | |
| Git配置文件操作 | 编辑本地配置文件 | git config --local --edit |
| 编辑全局配置文件 | git config --global --edit | |
| 编辑系统配置文件 | git config --system --edit | |
| 配置默认编辑器 | 查看配置文件位置 | git -c core.editor=echo config --local --edit |
| 不同系统更改默认编辑器 | Windows用户 | 安装Notepad++,修改初始化文件,临时设置 git -c core.editor=notepad++ --local --edit ,永久设置 git config --local core.editor notepad++ |
| Mac和Unix/Linux用户 | 检查nano编辑器,临时设置 git -c core.editor=nano config --local --edit |
7. 实际应用场景分析
7.1 团队协作场景
在团队协作开发项目时,不同成员可能有不同的代码提交习惯和配置需求。通过使用 git config 命令,团队负责人可以设置一些全局配置,如统一的提交邮箱、默认的推送策略等,确保团队成员的操作一致性。例如:
git config --global user.name "TeamMember"
git config --global user.email "team@example.com"
git config --global push.default simple
同时,成员也可以根据自己的喜好设置一些本地配置,如使用不同的编辑器。这样既保证了团队的整体规范性,又满足了个人的个性化需求。
7.2 项目迁移场景
当需要将项目从一个服务器迁移到另一个服务器时,可能需要修改一些远程仓库的配置。通过编辑Git配置文件,可以轻松完成这些操作。例如,在配置文件中修改 remote.origin.url 的值:
[remote "origin"]
url = https://new-server.com/repo.git
fetch = +refs/heads/*:refs/remotes/origin/*
这样,后续的拉取和推送操作就会指向新的服务器。
8. 常见问题及解决方法
在使用Git的过程中,可能会遇到一些常见问题,下面我们来分析并给出解决方法。
- 配置文件找不到 :在执行 git config --system --list 时,可能会出现找不到系统配置文件的错误。这通常意味着没有服务器级别的配置,一般由系统管理员进行配置。如果需要,可以手动创建该文件并进行相应配置。
- 编辑器设置不生效 :在更改默认编辑器后,可能会出现设置不生效的情况。对于Windows用户,可能是因为Notepad++的路径没有正确添加到 PATH 中;对于Mac和Unix/Linux用户,可能是 nano 没有在路径中。可以通过检查路径设置或使用完整路径来解决。例如,在Windows中可以直接使用完整路径设置编辑器:
git config --local core.editor "C:/Program Files (x86)/Notepad++/notepad++.exe"
9. 进一步学习建议
Git是一个功能强大且复杂的工具,本文只是介绍了其部分功能。如果你想进一步深入学习Git,可以参考以下建议:
- 阅读官方文档 :Git的官方文档是最权威的学习资源,包含了详细的命令说明和使用示例。可以通过 git --help 命令查看各个命令的帮助信息,也可以访问Git官方网站获取更多文档。
- 参与开源项目 :参与开源项目可以让你在实际的项目中运用Git,学习其他开发者的使用技巧和最佳实践。通过查看开源项目的提交历史、分支管理等,你可以更好地理解Git的高级应用。
- 学习Git工作流 :了解不同的Git工作流,如Git Flow、GitHub Flow等,可以帮助你更好地组织项目的开发流程,提高团队协作效率。
graph LR
A[实际应用场景] --> B[团队协作场景]
A --> C[项目迁移场景]
D[常见问题] --> E[配置文件找不到]
D --> F[编辑器设置不生效]
G[进一步学习] --> H[阅读官方文档]
G --> I[参与开源项目]
G --> J[学习Git工作流]
通过对Git的深入学习和实践,你可以更加高效地进行代码管理和团队协作,提升自己的开发能力。希望本文能对你有所帮助,让你在Git的世界中探索更多的可能性。

被折叠的 条评论
为什么被折叠?



