GIT标签同步
主要步骤
- 将 Git 操作脚本建立成 bat 文件
- 开启SourceTree,选择Tools→Options
- 点选Add,新增一个Custom Action
- 输入名称,选择刚刚 bat 文件位置
- 选择要带入的参数 $REPO
- 点击 Actions → Custom Actions → 选择自定义的操作
详细配置
复制下面的代码写成 .bat 文件
勾选(run command silently)
带入参数$REPO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23git checkout master
git fetch --prune origin
git pull --rebase
cd %1
FOR /F %%i in ('git tag -l') DO git tag -d %%i
git fetch --tags origin
-----
cd %1
echo 'Remove all local tags'
FOR /F %%i in ('git tag -l') DO git tag -d %%i
echo 'Fetch tags from origin'
git fetch --tags origingit 同步原生标签命令 SyncTags 可参考git指令
1 | git tag | xargs git tag -d |
- 清空本地 stash 自定义指令 ClearStashes
1 | cd %1 |
- 回退上一次提交 ResetPrevCommit 自定义指令
1 | cd %1 |
循环更新子模块
- 此操作可以递归更新每个子模块,但不一定会 rebase 到子模块的最新 master (可能是 git 的 bug)
- 勾选(run command silently)
1
git submodule update --recursive --remote --rebase
使用SourceTree配置SSH
目的
- git使用https协议,每次pull, push都要输入密码,相当的麻烦,使用ssh密钥可以省去每次输密码的步骤。
- 通过 SSH 联机,压缩传输的数据,可以大幅加快联机传输速度。
- 把所有传输的数据进行加密,有效防止远程管理过程中的信息泄露问题。
设定方法
产生个人的公钥与私钥
使用 SourceTree 内建的软件 PuTTY Key Generator 来产生一对密钥(PuTTY Key Generator在安装SourceTree 时一并安装,此处无需另外安装。)
- 打开 SourceTree,点击菜单栏中的 Tools ,选取 Create or Import SSH Keys 打开 PuTTY Key Generator。
- 点击 Generate 按钮
- 在key方框内随机移动鼠标,直到方框内出现的进度条达到满格状态,此时密钥产生完成。
- 密钥产生完成后,填写窗口中其他选项。
- Key comment:批注(密钥产生时自动填充)
- Key passphrase: 私钥密码,选填项,可不填。
- Confirm passphrase: 再次输入密码确认
- 保存,public key 和 private key 都要保存。
- Save public key: 储存公钥,用于GitHub/Gitee配置。
- Save private key: 储存私钥,用于本机连接远程仓库。
- 储存时记得档名要连扩展名 .ppk 一并输入,否则不会有扩展名。
GitHub/Gitee 设定公钥
- 登入 GitHub/Gitee,进入设置页面。
- SSH/GPG 密钥切换页面,再点选管理 SSH密钥的增加密钥按钮。
- 密钥名称可以自定义也可输入PuTTY Key Generator产生的 Key comment对应的内容,密钥内容处贴上产生出来的公钥内容。
- 增加密钥按钮进行添加,成功后就可以在屏幕上看到新增的密钥。
本机设定私钥
- 在计算机右下角右击Putty Authentication Agent,选择 View Keys 。
- 在 Pagent Key List 窗口中,再点选 Add Key 按钮。
- 将刚刚产生的私钥添加进来(如果在产生密钥时有输入密码,则此时会要求输入密码。)
- 添加成功后,会显示刚添加进来的私钥。
使用 SourceTree 通过 SSH 联机 GitHub/Gitee
- 登入GitHub/Gitee,点开一项目,复制要连接的 GitHub/Gitee 上的仓库的 SSH 位置。
- 执行 SourceTree,在上方工具栏中点选 Clone。
- 将刚刚找到的仓库位置粘贴,SourceTree 就会自动进行识别连接。
- 此时会弹出是否要接受的提示框,选 YES。
- 连接成功后,点击最下面的 Clone 按钮把文件下载下来,就开始使用啦!
使用OpenSSH
此方法可以解决 SourceTree Terminal 无法使用 SSH 的问题
亦可参考之前的Hexo搭建第5节
建立一对密钥
1 | $ ssh-keygen -t rsa -C [这边可以打mail或者空着也行,这里将按照你提供的邮箱地址,创建一对密钥。] |
检查用户目录是否已经产生公钥与私钥
进入.ssh目录查看是否有密钥文件即可
1 | ~\.ssh |
配置
- 打开 .pub 公钥文件,将内容导入到 Gitee/Github SSH设置中。
- 无 .pub 后缀为私钥文件,保存在本机即可。
- 在用户目录建立 config 文件,放入.ssh目录。(可略)
config内容
1 | Host github/gitee ip |
确认是否可连接成功,可以输入下面的命令
ssh -T git@github.com
看看设置是否成功
如果是下面的反馈:
1 | The authenticity of host ‘github.com (207.97.227.239)’ can’t be established. |
不要紧张,输入yes就好,然后会显示成功(successful)。
将 Source Tree 改用 OpenSSH 验证
- Tools→Options→SSH Client Configuration
- 将 SSH Client 改用 OpenSSH 其他不需调整
SourceTree 待办
跳过登录方法
将文件
accounts.json
放入%LocalAppData%\Atlassian\SourceTree\
。
- accounts.json 内容
1 | [ |
配置 SSH(参考以上内容)
配置自定义 bat(参考以上内容)
更新版本
设置英文
取消 Pull 时快速合并
开启 Force-Push
配置个人信息与个性化设置
Stash 使用教程
使用另一用户信息提交教程
修改提交信息教程
修改完成后,Force Push 到远端即可。
合并上一条提交教程
修改完成后,Force Push 到远端即可。
合并多条 commit
修改完成后,Force Push 到远端即可。
SourceTree 解决 rebase 冲突(Git)
- 同理,若 rebase 冲突太多,可以 merge,然后回退上一次版本,重新填写准确的 commit-msg,最后提交所有处理冲突后的文件。
- 目标分支 rebase 本分支之前,应该先让本分支领先且包含目标分支内容,否则目标分支 rebase 本分支大概率有很多冲突。
push 时远端已经更新冲突解决
fetch 一下本分支远端的更新,将远端已经更新的代码 rebase 到本地需要 push 的分支即可。
仓库设置-用户信息无法修改或提交时报 xxx.lock
错误
找到当前仓库的
.git
目录,删除所有带.lock
后缀的文件,重新操作即可。
跳过 commit hooks
commit 时加上
--no-verify
或者使用 SourceTree 进行如下操作
回退版本教程
修改完成后,Force Push 到远端即可。
以上教程均为 SourceTree 操作,其中修改过去的或者已提交的 commit 信息,原理基本都是修改了本地仓库的信息,再 Force Push 到远程。至于详细命令可参考 Git 教程。