git init 在当前目录,初始化Git仓库
git init newrepo 指定目录,初始化Git仓库
git clone
git status
git add .//添加目录到暂存区
git commit -m '提交信息'//提交暂存到本地仓库中
git commit [file1] [file2] -m [message]
git commit -a 参数设置修改后不需要执行git add命令,直接来提交
撤销git commit提交操作
1.还没有push,只是在本地commit
git reset [--soft|--mixed|--hard] [EAD]
--mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变
--soft 参数用于回到某个版本:
git reset --soft HEAD^ #退回所有内容到上一个版本
git reset --soft HEAD^ hello.vue #退回hello.vue文件的版本到上一个版本
git reset --soft 052e #退回到指定版本
HEAD 说明:
HEAD 表示当前版本或 HEAD~0
HEAD^ 上一个版本或 HEAD~1
HEAD^^ 上上一个版本或HEAD^2
HEAD^^^ 上上上一个版本或HEAD^3 以此类推。。。
--soft 参数:注意!!! 健谨慎使用–hard参数,他会删除回退点之前的所有信息
2.commit push 代码已经更新到远程仓库
git revert <commit_id> #revert 之后你的本地代码回滚到指定的历史版本,这是你再git push 既可把线上的代码更新
两种情况对比:
注意:git revert是用一次新的commit来回滚之前的commit, git reset 是直接删除指定的ommit
第一:上面我们说的如果你已经push到线上代码库, reset 删除指定commit以后,你git push可能导致一大堆冲突.但是revert 并不会.
第二:如果在日后现有分支和历史分支需要合并的时候,reset 恢复部分的代码依然会出现在历史分支里.但是revert 方向提交的commit 并不会出现在历史分支里.
第三:reset 是在正常的commit历史中,删除了指定的commit,这时 HEAD 是向后移动了,而 revert 是在正常的commit历史中再commit一次,只不过是反向提交,他的 HEAD 是一直向前的.
git切换分
git branch -a
git checkout 分支名 #切换分支
git checkout -b 分支名字 origin/分支名字 #是用与第一次创建并切换分支