git 使用记录

 1、撤销commit

  撤销并保留修改

  git reset --soft <commit_id>       会将改动放在缓存区 

  git reset --mixed <commit_id>    不把改动放在缓存区

  不保留修改撤销

  git reset –hard <commit_id>

  tip: <commit_id>: 要撤销的前面一个commit

       缓存区 : add的代码就在缓存区

2、修改最后一次提交

  git commit -m 'initial commit'

  git add forgotten_file

  git commit --amend

  tip:上面的三条命令最终只是产生一个提交,第二个提交命令修正了第一个的提交内容

3、撤销add

  git reset HEAD <file>

4、丢弃工作去文件的改动

  git checkout -- <file>

5、撤销merge/pull操作

  git reset --merge

  tip:因为pull操作实际上包含了fetch+merge操作

6、stash操作

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

  git stash save "remark" //作用等同于git stash,区别是可以加一些注释

  git stash list //查看当前stash中的内容

  git stash pop //将当前stash中的内容弹出,并应用到当前分支对应的工作目录上。 

  tip:注:该命令将堆栈中最近保存的内容删除(栈是先进后出)

  git stash apply //将堆栈中的内容应用到当前目录

  git stash apply <stash_name> //指定恢复哪个stash到当前的工作目录

  tip:不同于git stash pop,该命令不会将内容从堆栈中删除,也就说该命令能够将堆栈的内容多次应用到工作目录中,适应于多个分支的情况

  git stash drop <stash_name> //从堆栈中移除某个指定的stash

  git stash clear //清除堆栈中的所有内容

7、.gitignore中添加忽略文件

  git rm -r --cached .

  git add .

  git commit -m 'update .gitignore'

  tip:把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未被追踪状态),然后再提交,这样就不会出现忽略的文件了

8、与远程仓库同步

  git fetch origin --prune

9、checkout远程分支

  git checkout -b dev(本地分支名) origin/dev(远程分支名)

 10、Xcode自带Git的使用

  https://www.jianshu.com/p/ba88a4309003

 

 

 

 

 

 

  

 

posted @ 2019-06-18 16:45  晚安早安  阅读(180)  评论(0编辑  收藏  举报