Git的一些使用技巧
Tip 1 通过SSH Config文件配置进行Github、Gitee等代码管理平台基于SSH协议的免密git clone
Preliminary: 需要在代码管理平台网页中完成公钥字符串的添加
我们可以利用SSH的config文件配置私钥连接代码管理平台。
下面是一个管理多平台SSH验证的.ssh/config
文件示例
###~/.ssh/config
#github.com
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/XXXXX ##对应的密钥
#gitee.com
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/XXXXX ##对应的密钥
*需要注意的是.ssh/config
及对应的私钥的权限问题,需给为600。*及以下的权限
chmod 600 ~/.ssh/*
chmod 400 ~/.ssh/* #更严格的权限,只读
可通过下面命令来测试config配置是否成功
ssh -T git@github.com
Hi XXXX! You've successfully authenticated, but GitHub does not provide shell access.
Tip 2 配置每个项目的user.name、user.email
在初始化git项目时,commit要求了必须要进行user的初始化:
git config --gloab user.name XXX
git config --gloab user.email XXX
但是,由于代码平台、或者个人项目等原因,导致user信息不一致时,可以通过下面的命令,针对某个项目进行单独的user信息config
git config --gloab user.name XXX
git config --gloab user.email XXX
通过git config --list --local
, 可进行查看当前项目中git的配置信息。
通过git config --list --global
, 可进行查看全局中git的配置信息。
实际上,我们也可以通过对当前下项目 .git/config
文件直接修改以达到同样的效果。在文件末尾添加下面格式的代码同样可以达成针对当前项目配置的效果。
[user]
name = XXX
email = XXX@XXX
Tip 3 配置多个远程仓库的源
限于Mainland China网络,目前网络环境稳定性的影响,我们不得不除了在Github上管理一套代码外,还需要再国内再部署一套同样的代码管理系统,以应对时不时的github抽风。由于纯粹的git,脱离了github等互联网代码管理平台以外仍然可以再本地进行代码管理,github等机制实为添加git的remote源。
我们默认的远程代码源,命名为origin
,因此我们通常都会使用如下命令进行代码推送到远端的master分支:
git push -u origin master
然后由于只有一个remote 源,往往可以直接省略为:
git push
那么通过类比,我们可以通过特定的git remote add
命令进行多源管理。
git remote add github git@github.com/XXXX/XXXX.git
此时,我们添加了一个名为github
的远程源。可以通过git remote show
来查看有哪些remote源。
将master分支推送给github
源也非常简单:
git push -u github master
此时,我们查看 .git/config
文件,可以观察到文件内多出了几行内容:
[remote "github"]
url = git@github.com/XXXX/XXXX.git
fetch = +refs/heads/*:refs/remotes/github/*
Tip 4 利用Sublime Merge合并多个commit为一个
基于Squash Commit
:
- 打开 Sublime Merge 并选择你的仓库。
- 点击你想要合并到的最早的那个 commit(这将是合并后的单个 commit 的基础)。 按住 Shift 键并点击最新的那个 commit,以选择你想要合并的 commit 的范围。
- 右键点击选中的 commit 中的任意一个,选择 Squash Commits。这将把选中的 commits 合并到最早的那个 commit 中。
- 在Commit对话框中,你可以编辑新的 commit 信息。这个信息通常会包含所有被合并 commits 的信息,你可以根据需要进行修改。
- 确认无误后,点击 Squash 按钮来完成操作。
- 如果你已经将这些 commits 推送到了远程仓库,你需要强制推送来更新远程仓库的历史。在 Sublime Merge 中,你可以通过点击 Push 按钮然后选择 Force Push 来完成这个操作