千夜同学 看脚下一片黑暗 望头顶星光璀璨

Git Rebase

| Git

分支合并,有两个选择,一个是 merge,另一个是 rebase

  1. mergerebase 合并后的结果是一模一样的,形象的说,二者是殊途同归。

  2. 使用 rebase 后的 commit 与之前的 commit,它们的 SHA-1 值不同,Git 会把它们看成两次提交。

 READ MORE 

Git 回滚合并

| Git

假设有如下分支图:

unmerge1.png

注:Git 分支图中的箭头表示依赖关系,并不是分支发展路线。发展路线和箭头是相反的。也就是图中是从 C1 开始一直发展到 C12 的。

假设要回滚 C10。

第一种解决方案是将 master 回退到 C8,然后将两个特性分支 jk/post-checkoutdb/push-cleanup 合并过来。

git checkout master
git reset --hard [sha_of_C8]
git merge jk/post-checkout
git merge db/push-cleanup

完成之后,分支图如下:

unmerge2.png

 READ MORE 

Git 删除远程服务器文件同时保留本地文件

| Git

在上传工程到 git 上时,有时候会把本地的一些配置文件传到服务器上,这时你先删除本地,再同步服务器,显然是不合理的。

git 提供了一个好的解决方法,可以直接删除服务器文件,同时不影响本地文件,命令如下:

git rm --cached filename/-r directory
git commit "xxxx"
git push
 READ MORE 

Git 分支管理模型

| Git

单主干

单主干的分支实践(Trunk-based development TBD)在 SVN 中比较流行。Google 和 Facebook 都使用这种方式。

trunk 是 SVN 中主干分支的名称,对应到 Git 中则是 master 分支。

TBD 的特点是所有团队成员都在单个主干分支上进行开发。当需要发布时,先考虑使用标签tag,即 tag 某个 commit 来作为发布的版本。如果仅靠 tag 不能满足要求,则从主干分支创建发布分支。bug 修复在主干分支中进行,再 cherry-pick 到发布分支。

git-branch-01.png

 READ MORE 

Git 放弃本地修改 直接 pull 代码

| Git

先 reset 然后清空。

git reset --hard HEAD    
git clean -f -d    
git pull
 READ MORE 

github push 错误 The requested URL returned error 403 Forbidden while accessing

| Git
git push  
error: The requested URL returned error: 403 Forbidden while accessing
 READ MORE