Git 学习笔记

本文遵守CC BY-SA3.0

前言:

  虽然一直以来都使用git来团队开发,但是还没有系统的做一些记录,导致身边的小伙伴出现问题,仍然是直接来问我。。

  这里记录一篇git的常见用法和一些小问题,就当是方便大家哈,如果有什么新的问题,欢迎留言交流。

  还有补充:强烈推荐廖雪峰的官方网站,里面有git的详细讲解,这里只写一些工作中遇到的,还会陆续补充。

一、常用命令

  显示提交日志  git log

  显示全部分支  git branch

  创建分支    git branch (分支名)

  切换分支    git checkout (分支名)

            -b 若不存在分支,则创建它

  删除分支    git branch -d (分支名)    

            -d 当分支已经合并到主干后删除

            -D 无论如何都删除分支

  合并分支    git merge (分支名)

  

  撤销所有本地修改                     git reset --hard
  撤销所有本地到上一次修改               git reset --hard HEAD^
  撤销上一次commit,将commit的文件撤回暂存区    git reset --soft HEAD^
  要是想撤销到上上次,就是HEAD^^  ,以此类推。
 
  git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区
 
  git commit -amend
  将此次更新文件并入到上次commit的记录中,不新添加commit
 
二、git 进阶
 
  1.git log --stat  显示提交的详情(文件改动)
  2.git reflog     可以查看所有分支的所有操作记录(包括(包括commit和reset的操作),包括已经被删除的commit记录
  3.git stash     暂存本地修改
  4.git statsh pop  还原暂存
 
  tips:使用git stash保存工作现场,然后就可以切换到其他分支进行工作,或者在本分支直接同步代码,一般用于当前本地还不需要提交,但是需要从服务器同步代码,此时如果还保留着为提交的代码,会导致被禁止同步,此时就可以使用git stash,将本地修改暂存,然后同步代码(可能是git pull或者repo sync),然后使用git stash pop,还原工作现场。
 
三、常见问题
 
1.解决gerit上面的冲突

  cd demo

  以分支为develop为例

  打开Gerrit有冲突的那个网址,如 http://192.168.6.162:8080/#/c/16/ 找到Download 如下命令,执行

    git fetch ssh://shuolbde@192.168.6.162:29404/demo refs/changes/16/16/1 && git checkout FETCH_HEAD

  git checkout -b new_branch_name

  git fetch origin

  git rebase origin/develop

  修改冲突文件

    git add .

    git rebase --continue

    git push origin new_branch_name:refs/for/develop

    git checkout develop

    git branch -D new_branch_name

  不会产生新的changes记录,将原changes记录重新review提交即可,这时在原冲突机器上直接pull会本地冲突,需要

    git reset --hard HEAD^

  否则会出现cannot do a partial commit during a merge.

  最后更新下代码

    git pull

  
posted @ 2015-05-17 10:42  ShuolBDe  阅读(234)  评论(0编辑  收藏  举报