git常用命令

基本命令

set LESSCHARSET=utf-8 --idea Terminal乱码(idea自带的操作git窗口)

git clone 分支名 --将分支克隆到本地

git stash --将修改暂时放到暂存区

git stash pop --从暂存区弹出

git checkout 分支名或文件名 --切换到分支

git pull --拉取最新文件(更新)

git add 文件名 --添加文件(用于提交)

git commit -m "提交备注信息" --提交文件

git push --推送到远程分支
//这三个通常一起使用

添加了多余文件后,已经add未commit时撤销添加

git reset HEAD 文件名  --撤销某文件
git reset HEAD --全撤销

已经commit还未push时,回退版本号

git reset --mixed 要回退到哪个版本号(本地代码还保留着)
git reset --hard 要回退到哪个版本号(本地代码不保留)

 

push后回退撤销

 

对于已经把代码push到线上仓库,你回退本地代码其实也想同时回退线上代码,回滚到某个指定的版本,线上,线下代码保持一致.你要用revert命令

 

git revert用于反转提交,执行revert命令时要求工作树必须是干净的.

 

git revert用一个新提交来消除一个历史提交所做的任何修改.

 

revert 之后你的本地代码会回滚到指定的历史版本,这时你再 git push 既可以把线上的代码更新.(这里不会像reset造成冲突的问题)

 

revert 使用,需要先找到你想回滚版本唯一的commit标识代码,可以用 git log 或者在adgit搭建的web环境历史提交记录里查看.

 

git revert c011eb3c20ba6fb38cc94fe5a8dda366a3990c61

 

通常,前几位即可

 

git revert c011eb3

 

git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit

 

看似达到的效果是一样的,其实完全不同.

 

  1. 上面我们说的如果你已经push到线上代码库, reset 删除指定commit以后,你git push可能导致一大堆冲突.但是revert 并不会.
  2. 如果在日后现有分支和历史分支需要合并的时候,reset 恢复部分的代码依然会出现在历史分支里.但是revert 方向提交的commit 并不会出现在历史分支里.
  3. reset 是在正常的commit历史中,删除了指定的commit,这时 HEAD 是向后移动了,而 revert 是在正常的commit历史中再commit一次,只不过是反向提交,他的 HEAD 是一直向前的.

 

posted @ 2020-07-23 10:36  *乐途*  阅读(86)  评论(0)    收藏  举报