git status:显示工作区和暂存区的状态
git add:将文件或目录从工作区添加到暂存区
(git add .):添加当前目录下的所有文件到暂存区
git stash:将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录
git checkout:切换分支
git branch:罗列出本地的分支
git commit(git commit -m [message]):将暂存区内容添加到本地仓库中
git commit
git reset
git reset
git revert:反做,可能会出现冲突,多生成一个新的版本
git log:查看版本的历史
git rebase:变基,改变当前分支的起点
git merge:合并,起点不会变
Git撤销对远程仓库的push:git log
git reset –-soft <版本号>
为什么不要在公共分支使用rebase?
比如1-2-3 是现在的分支状态
这个时候从原来的master ,checkout出来一个prod分支
然后master提交了4.5,prod提交了6.7
这个时候master分支状态就是1-2-3-4-5,prod状态变成1-2-3-6-7
如果在prod上用rebase master ,prod分支状态就成了1-2-3-4-5-6-7
如果是merge
1-2-3-6-7-8
........ |4-5|
会出来一个8,这个8的提交就是把4-5合进来的提交
git多个commit合并成一个:git reflog 找到commitId
git rebase -i commitId
输入i,将pick改为squash(合并commit)
git push -f 强制推送一下
有1,2,3,4个commit,需要将2删除,保留1,3,4如何实现?
git reflog 找到commitId
git rebase -i commitId
输入i,将pick改为drop(册除commit)
git push -f 强制推送一下