git基本操作流程和指令

基本操作流程

用了git也有大半年了,之前浅浅使用过SVN,至于孰好孰坏在此不做讨论
只是梳理下大半年来的使用

git提交流程

git基本操作流程和指令

  1. 修改代码
    git checkout – file # 取消本地改动,退到改动之前
  2. git add -u,习惯上我只用-u,或者直接一个个文件添加
    git reset HEAD file #取消add操作
  3. git commit -m “xxx”
    git commit --amend提交主要用于开发分支,使分支上的提交信息保持干净整洁
    git reset --hard HEAD^^ #退到代码没改动之前
    git reset --hard HEAD^^ #退到第2步,已经add的状态
  4. git push origin xxx
    提交到远端

git 创建分支

往往开发是多人一起进行的,代码改动直接提交到master是不符合开发规范的,并且直接提交master存在很多冲突
git checkout master          #先到master分支
git pull                     #更新到最新代码
git checkout -b dev/xxx/xxxx #开发分支名字,命名最好让人一目了然,是谁,某个feature
修改代码  
之后的操作和上图的git基本操作流程一致

git 查看分支

查看本地分支git branch
查看远端分支git branch -r
记得执行前要做git pull/fetch操作

git 删除分支

多于存在已久的branch或者已经合到master的branch没有存在必要就应该删除
git branch -D dev/xxxx/xxxx #删除某个开发分支,当前分支必须在其他分支身上
git push origin -d dev/xxx/xxx # 将远端的某个分支删除

git 修改branch名字

一般习惯上请保持本地名称和远端仓库名称保持一致,并且最好不要做修改操作

需要修改的请自行baidu

高阶操作

git rebase 合并

还在傻傻用对比工具查看修改然后合并吗?试试rebase吧

开发分支合并到master分支之前最好执行的一步
和其他某一个分支保持同步需要执行的一步
1.git fetch --all  # 和远端仓库同步
2.git rebase origin/master # 将master代码合并到当前所在分支
3.git push origin dev/xxx/xxxx -f #将当前分支强制提交到远端

git stash 操作

对当前分支做的修改 做暂存,再pop到你想要的分支上

比方,你小时候在玩泥巴, 你花了两个小时堆出了一个帝国大厦,就差一个顶了,觉得很了不起
这时候你邻居家的小红过来了,说要一起玩,要堆一个金字塔,虽然你是拒绝的,但是你还是答应了
那现在这个帝国大厦就需要立马存起来,然后去堆金字塔,这时候你可以使用git stash save “The Empire State Building”
泥巴堆一下子就回到了干净的状态,然后可以开始堆 金字塔了
等金字塔堆完之后,小红愉快的走了,
你想起了你的帝国大厦,你先把金字塔push到其他地方,然后使用git stash list查看到暂存起来的The Empire State Building 对应的是[email protected]{0}
使用git stash pop [email protected]{0}就可以回到之前帝国大厦的状态了

指令:
	git stash save "xxx"
	git stash list               #查看xxx对应的ref
	git stash pop ref        # pop出对应的stash