git 知识补充
补充
git 可以只提交文件的部分内容, git add -p,称之为hunk, sourcetree也可以进行设置
分支改名
git branch -m cat tiger分支合并后产生的commit, A合并B,commit 信息中,父提交记录顺序,parents : A, B
A在前,B在后,表示是A 合并的B
git如何判断分支是否可以删除
当前分支所指向的commit ,没有其它commit指向它(这个提交(分支)还没有被合并),或只有当前分支指向它,没有其它分支指向它时,在删除这个分支时就会有提示不能直接删除rebase 后,对应commit 值是否发生变化
看情况,嫁接到其它commit 之上的commit 的值会发生变化,因为其父提交发生了变化,同理,在这个commit 之后的提交的值也发生变化
A B C D E F,把F嫁接到其它 COMMIT后,A到E的COMMIT的值都发生变化修改现有COMMIT 的注释,也会发生这样的连锁反应
rebase 的其他用途
修改历史提交注释 r选项
合并多个提交 s 选项
把一个提交拆分成多个commit 在操作列表使用使用 edit
在commit 之间添加新的commit edit选项
调整commit 之间的顺序 直接在列表里调整,
删除commit 在列表里删除相关行过使用drop,删除后对它之后commit 的影响如何空目录无法被添加到git
因为根据算法,添加的对象必须要有内容,以供sha1算法使用合并后再使用
git rebase
使提交成为一条直线git merge upstream-master Auto-merging layout/_partials/sidebar/site-overview.njk Auto-merging layout/_partials/post/post-followme.njk Merge made by the 'recursive' strategy. layout/_partials/header/menu-item.njk | 5 +---- layout/_partials/page/breadcrumb.njk | 6 +----- layout/_partials/post/post-followme.njk | 2 +- layout/_partials/sidebar/site-overview.njk | 2 +- git slog --graph * b1b3e13 (HEAD -> release) Merge branch 'upstream-master' into release |\ | * d51ca0e (upstream/master, upstream-master) Fix: handle invalid config * | 369c5b5 (origin/release, origin/master, origin/HEAD, master) Resolve conflicts |/ * d6f344f Refactor sidebar-panel using flex layout * edefcda Add NProgress (#79) # 把前分支作为基础分枝, 把 upstream-master 分支的提交嫁接在其上面 git rebase First, rewinding head to replay your work on top of it... Applying: Fix: handle invalid config Using index info to reconstruct a base tree... M layout/_partials/post/post-followme.njk M layout/_partials/sidebar/site-overview.njk Falling back to patching base and 3-way merge... Auto-merging layout/_partials/sidebar/site-overview.njk Auto-merging layout/_partials/post/post-followme.njk git slog --graph * 217e224 (HEAD -> release) Fix: handle invalid config * 369c5b5 (origin/release, origin/master, origin/HEAD, master) Resolve conflicts # 以这个提交做为 rebase * d6f344f Refactor sidebar-panel using flex layout * edefcda Add NProgress (#79)
- 使用merge出现了分支线路
- rebase后,分支线路消失,成为一条直线。 是 以当前分支的最TOP的那个(369c5b5)提交做为rebase,重放合并进来的分支上的提交的