一,基本操作
- 克隆远程代码到本地 git clone git@gitee.com:yin_huidong/rpc.git
- 提交本地缓存区 git add .
- 提交本地版本库 git commit -m “aaa”
- 拉代码 git pull origin master
- 推送到远程 git push origin master
- 本地已有仓库,映射本地仓库到远程仓库 git remote add origin url
二,版本控制
- 撤销已修改,未add git checkout – .
- 撤销已修改,未commit git reset
- 查看git相关信息 git config --list
- 查看操作日志 git reflog
- 查看日志 git log
- 回滚本地代码到指定版本 git reset --hard 版本号
- 强制用本地覆盖远程 git push -f
三,分支操作
- 创建分支 git branch dev_yhd
- 查看所有分支 git branch -v
- 切换分支 git checkout dev_yhd
- 更新远程代码到本地库 git fetch origin master (默认为master)
- 从远程的origin仓库的master分支下载到本地并新建一个分支temp git fetch origin master
- 将指定的分支合并到当前分支 git merge dev_yhd
- 删除分支 git branch -d dev_yhd
- 查看当前位于哪个分支 git branch -vv
- 比较master 和 temp 分支的不同 git diff temp
四,补充
1.git pull 和 git clone
- git clone 操作不需要 git init 自动执行
- git pull = git fetch+git merge 从远程获取最新版本与本地进行合并
2.git reset 和 git revert
- git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。
- 在回滚这一操作上看,效果差不多。但是在日后继续merge以前的老版本时有区别。因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现,但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入。
- git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。
五,基操勿六
1.场景1:
本地开发一天,直接pull代码,提示拒绝
- git stash
- git pull
- git stash pop
- git add .
- git commit -m “xxx”
- git push origin master
2.场景2:
在分支dev checkout了一个分支aaa,然后在aaa上开发一半,现在重新又从master checkout了一个分支bbb,如何将分支aaa的开发代码转移到分支bbb?
- git relog
- git reset --soft version
- git stash
- git checkout bbb
- git stash pop
- git add .
- git commit -m “bbb”
- git push orign master
3.场景3:
远程更新了,本地有未提交的修改,我也想更新,怎么办?
- git stash
- git pull
- git stash pop
4.场景4:
我们commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西。
- git revert commit “version”