Contents

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:

  1. 打开 Sublime Merge 并选择你的仓库。
  2. 点击你想要合并到的最早的那个 commit(这将是合并后的单个 commit 的基础)。 按住 Shift 键并点击最新的那个 commit,以选择你想要合并的 commit 的范围。
  3. 右键点击选中的 commit 中的任意一个,选择 Squash Commits。这将把选中的 commits 合并到最早的那个 commit 中。
  4. 在Commit对话框中,你可以编辑新的 commit 信息。这个信息通常会包含所有被合并 commits 的信息,你可以根据需要进行修改。
  5. 确认无误后,点击 Squash 按钮来完成操作。
  6. 如果你已经将这些 commits 推送到了远程仓库,你需要强制推送来更新远程仓库的历史。在 Sublime Merge 中,你可以通过点击 Push 按钮然后选择 Force Push 来完成这个操作