1. 拉代码
git pull origin branch_name
git pull --rebase origin branch_name 解决本地有提交时产生冲突,merge出一个新提交的问题。
2.提交代码
git push origin branch_name
如果改了些内容,想重新推代码:
git add ...
git commit --amend
git push origin branch_name -f
3.删除上个提交
1.先用 git log 查出历史提交记录,找到需要删除的那条记录的上一个的commit-id
2.使用git reset commit-id把提交记录回滚到上一次提交(不建议用git revert,因为用它不但不会删除你想删除的那条记录,还会有一条新的提交记录用来重置你的上次的修改)
git reset 1ed361d6bf331cb3e9fc695888d7ae76ae9dce593.再用git log 确认是否删除错误的提交记录
4.用git status发现代码变成未提交状态,重新add并commit正确的代码修改
5.不要pull远程代码(防止第2步白做),直接用git push --force origin 分支名,强制push到远程分支
(
如果是git revert
1. git revert HEAD
2. git push origin branchname
)
4. 撤销文件的修改(还未git add)
git checkout filename
5. 撤销已通过 git add 命令进入暂存区的文件(已经git add)
git reset HEAD <filename>
6. cherry-pick 其他地方的提交
1. git cherry-pick commit_id
如果遇到冲突:解决冲突,然后把文件加到暂存区(git add .)
git cherry-pick --continue (解决冲突后执行,完成cherry-pick)
(放弃cherry-pick git cherry-pick --abort 冲突后放弃合并,回到操作前的样子)
(退出cherry-pick git cherry-pick --quit 发生冲突退出cherry pick, 不回到操作前的样子)
7. 代码暂存
git stash 暂存未提交的修改 git stash --include-untracked (新加的文件也进行暂存)
可以给stash命名: git stash save "message"
git stash list 暂存的所有stash
git stash pop 恢复最上面的stash , 恢复某个,可使用 git stash pop stash@{num}
git stash apply 将堆栈中的内容恢复到当前分支下。这个命令不同于 git stash pop。该命令不会将内容从对堆栈中删除,也就是该命令能够将堆栈的内容多次运用到工作目录,适合用与多个分支的场景 git stash apply stash@{$num}
git stash drop 从堆栈中移除指定的stash 使用方法:git stash drop stash@{$num}
git stash show 查看堆栈中最新保存的stash和当前⽬录的差异,显⽰做了哪些改动,默认show第一个存储 事例:git stash show -p stash@{3}
8. 把主分支的提交转移到当前分支
git checkout feature
git rebase master
构造两个分支master和feature,其中feature是在提交点B处从master上拉出的分支
master上有一个新提交M,feature上有两个新提交C和D
此时我们切换到feature分支上,执行rebase命令,相当于是想要把master分支合并到feature分支(这一步的场景就可以类比为我们在自己的分支feature上开发了一段时间了,准备从主干master上拉一下最新改动。模拟了git pull --rebase的情形)