### 场景 当前在A分支,要求将当前分支的提交合并到B分支。 ### 常规合并 ```shell # 暂存当前未提交的改动 git stash -m "xxx" # 切换到B分支 git checkout B # 合并A分支到当前分支(即B分支) git merge A # 推送提交 git push origin B:B # 切换回A分支 git checkout A # 取出暂存的改动继续工作 git stash pop ``` 这种常规合并的操作方式不仅繁琐,而且要求当前分支不能有未提交的更新(意味着如果有未提交的改动,你必须先进行`stash`,否则无法切换分支),还有一个问题就是我们的项目是做了文件改动后自动增量编译的,意味着这一系列操作将会触发两次重编译(两次`checkout`),浪费大量的时间。 ### 快速合并 ```shell # 直接将当前分支合并到B分支 git push . HEAD:B # 推送提交 git push origin B:B ``` 这种常规合并的方式不需要任何的暂存、切换分支操作,也不会触发重编译,可节省大量时间。但是这种方式也有缺点,首先只支持`fast-forward`模式的合并,如果非`fast-forward`模式则需要先将B分支合并到当前分支,这样子就会对当前分支有侵入,其次用这种`push`的方式合并在`reflog`是不会有记录的,所以以后如果要回退,就不容易找到对应位置的`commit id`。如果你确定要合并的提交不会造成冲突且不会造成大的影响,可以使用这种方式合并。
mclone 体验飞一般的clone速度 ### 对比 #### git clone ![git_clone.gif](https://storage.liesauer.net/2021/03/2885816450.gif) #### git mclone ![git_mclone.gif](https://storage.liesauer.net/2021/03/3521721393.gif) ### 限制 1. 仓库大小(仅Proxy):`<500M` 2. LFS支持:`未知` ### 项目地址 [nulastudio/mclone](https://github.com/nulastudio/mclone) ### 使用 `git clone`换成`git mclone`,完事 ### 安装 #### Windows cmd ```shell powershell Invoke-Expression (New-Object Net.WebClient).DownloadString(\"https://gitee.com/liesauer/mclone/raw/v1.5.1/script/install.ps1\") ``` powershell ```shell Invoke-Expression (New-Object Net.WebClient).DownloadString("https://gitee.com/liesauer/mclone/raw/v1.5.1/script/install.ps1") ``` #### Linux/MacOS curl ```shell sudo bash -c "$(curl -fsSL https://gitee.com/liesauer/mclone/raw/v1.5.1/script/install.sh)" ``` wget ```shell sudo bash -c "$(wget https://gitee.com/liesauer/mclone/raw/v1.5.1/script/install.sh -O -)" ``` ### 卸载 #### Windows cmd ```shell powershell Invoke-Expression (New-Object Net.WebClient).DownloadString(\"https://gitee.com/liesauer/mclone/raw/v1.5.1/script/uninstall.ps1\") ``` powershell ```shell Invoke-Expression (New-Object Net.WebClient).DownloadString("https://gitee.com/liesauer/mclone/raw/v1.5.1/script/uninstall.ps1") ``` #### Linux/MacOS curl ```shell sudo bash -c "$(curl -fsSL https://gitee.com/liesauer/mclone/raw/v1.5.1/script/uninstall.sh)" ``` wget ```shell sudo bash -c "$(wget https://gitee.com/liesauer/mclone/raw/v1.5.1/script/uninstall.sh -O -)" ```
### 安装Gpg4win 前往[官网](https://gpg4win.org/download.html)下载并安装`Gpg4win`。 ![TIM截图20200821092124.png](https://storage.liesauer.net/2020/08/548415563.png) 注意安装时一定要勾选`Kleopatra`组件,我们需要使用这个工具来创建、管理证书。 ![TIM截图20200821092315.png](https://storage.liesauer.net/2020/08/2490477745.png) - 阅读剩余部分 -
- 阅读剩余部分 -
### 问题 开启2FA后提示验证失败。 ``` Username for 'https://github.com': Password for 'https://username@github.com': remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/your/repository.git/' ``` 需要注意的是,只有使用`HTTPS`才会这样,使用`SSH`是使用`SSH KEY`进行验证的。 ### 原因 github开启2FA后,不再使用原来的密码进行验证,而是使用`ACCESS_TOEKN`,因此我们需要[新增](https://github.com/settings/tokens/new "新增")一条`TOKEN`,如果你只是进行常规git操作只需要勾选`repo`下的权限即可,添加成功后在git下输入密码时输入新添的`TOKEN`即可。 ### 文章引用 [Creating a personal access token for the command line](https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line "Creating a personal access token for the command line")
域名出售
服务器推荐