git常用命令

130 阅读2分钟
git status:显示工作区和暂存区的状态

git add:将文件或目录从工作区添加到暂存区

(git add .):添加当前目录下的所有文件到暂存区

git stash:将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录

git checkout:切换分支

git branch:罗列出本地的分支

git commit(git commit -m [message]):将暂存区内容添加到本地仓库中

git commit --amend:修改commit的注释

git reset --hard HEAD^:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,所有修改的内容都会丢失

git reset --soft HEAD^:回退到某个版本,只回退了commit的信息,如果还要提交,直接commit即可(修改的内容变成未add的状态)

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 强制推送一下
                      
有1234commit,需要将2删除,保留134如何实现?
git reflog 找到commitId
git rebase -i commitId
输入i,将pick改为drop(册除commit)
git push -f 强制推送一下