git记录_远程分支

1、基础知识

每次commit都会生成一个节点,而每个节点都会有一个哈希值作为唯一标示,多次提交会形成一个线性节点链;
head是指针,可以指向任意一个commit节点,并且指向的节点始终为当前工作目录;
branch也是指针,在某个节点创建一个分支后,并不会把该节点对应的代码复制一份出来,只是将新分支指向该节点;

2、提交相关操作
git add .
git commit --amend -s -m "my first commit"?
git fetch 远程仓库地址/分支名,把远程新增的节点和引用状态下载到本地
git pull <远程分支名>,其实是 fetch+merge
git pull --rebase <远程分支名>,其实是 rebase+merge
git push -f origin master:master

3、合并相关操作
多人同时修改了同一个文件的同一行代码,则需要手动合并代码
git merge <分支名>或<节点hash值>  会产生新的commit节点;

git记录_开发流程_02


git rebase <分支名>或<节点hash值>  不会产生新的commit节点,使得开发流程更加线性;

git记录_开发流程_03


git cherry-pick <节点hash值> 把commit节点抓过来放在后边

git记录_git_04

4、撤销相关操作

git log 查看所有的commit提交记录;

git show 查看提交的详情
git checkout <节点hash值> 把head指向对应节点
git checkout HEAD^ 把head指向前一个节点
git checkout ~2 把head指向前2个节点
发现之前提的代码有问题,则可以先把head指向之前的节点,再--amend提交

重置commit

命令:git reset HEAD~2把本地仓库的commit节点回退到前两个的commit节点,默认是--mixed,还有--softed和--hard;

git reset之后需要git push -f origin comp_crontask01:comp_crontask01

IDE: Reset Cerrent Branch to Here

回滚中间commit

命令:git revert <commit id>

git revert 之后需要git push -f origin comp_crontask01:comp_crontask01

IDE: Revert Commit

合并多个commit:

命令:git rebase -i HEAD~2

git rebase之后需要git push -f origin comp_crontask01:comp_crontask01

IDE: 选中一个执行Interactively Rebase from Here, 需要 ctrl+enter 或者

选中多个执行Squash Commits

参考​​git如何合并多个commit_海棠睿睿的博

5、分支相关操作

git branch 查看本地分支

git checkout <分支名> 切换分支

git branch -a 查看远程分支

git checkout -t origin/st 切换到远程分支

git branch -d <分支名> 删除分支