目录

分支管理:

配置篇

乱码

无法显示中文

长期储存密码

回滚篇

reset 参数说明:

远程版本回退:


 

分支管理:

  • master分支和dev分支不允许直接push
     
  • 初始时,master分支与dev分支相同,每个人从dev分支拉取个人开发分支或功能特性分支
     
  • 每个人在自己的开发分支上可以自由push,某个模块开发完成后在gitlab上发起merge request合并到dev
     
  • merge request成功后,如果是功能特性分支或bugfix分支,可直接删除,下次再从dev分支fork
     
  • 鼓励频繁merge request,可相互指定review
     
  • 为尽量避免merge request冲突,在发起MR之前,可先checkout 到dev分支,更新本地的dev分支,
    再切换到个人分支,合并dev分支再push,最后发起MR

命令篇

  • 1.开分支

    git branch 新分支名
    例如,在master分支下,新开一个开发分支:
    git branch dev

     

  • 2.切换到新分支

    git checkout 分支名
    例如,在master分支下,切换到新开的dev:
    git checkout dev

     

  • 3.开分支和切换分支合并到一个命令

    git checkout -b 新分支名
    例如,新开一个开发分支,并立即切换到该分支:
    git checkout -b dev

     

  • 4.切换回原分支

    git checkout 原分支名
    例如,切换回master
    git checkout master
    注意:当前分支有修改,还未commit的时候,会切换失败,应当先commit,但可以不用push

     

  • 5.合并分支

    git merge 需要合并的分支名
    例如,刚刚已经切换回master,现在需要合并dev的内容:
    git merge dev
    建议在GitLab(或者其他git系统)上面创建merge request的形式来进行分支的合并和代码审核。

     

  • 6.查看本地分支列表

    git branch -a
    前面带remotes/origin 的,是远程分支

     

  • 7.查看远程分支列表

    git branch -r

     

  • 8.向远程提交本地新开的分支

    git push origin 新分支名
    例如,刚刚在master下新开的dev分支:
    git push origin dev

     

  • 9.删除远程分支

    git push origin :远程分支名
    例如,删除刚刚提交到远程的dev分支:
    git push origin :dev

     

  • 10.删除本地分支

    git branch 分支名称 -d
    例如,在master分支下,删除新开的dev分支:
    git branch dev -d
    注意:如果dev的更改,push到远程,在GitLab(或者其他git系统)上面进行了merge操作,

    但是本地master没有pull最新的代码,会删除不成功,可以先git pull origin master,或者强制删除

    git branch dev -D

     

11.更新分支列表信息

git fetch -p

12.添加.gitignore忽略文件后,执行以下命令

git rm -r --cached . 
git add .
git commit -m "提交说明"

 

配置篇

乱码

执行git add命令时出现乱码
类似
\316\304\261\276\316\304\265\265.txt
编辑 C:\Git\etc\inputrc 文件中对应的行,查找以下2行,并修改其值, 原先:
set output-meta off
set convert-meta on
改为:
set output-meta on
set convert-meta off

无法显示中文

git config --global core.quotepath false

 

Git GUI乱码

git config --global gui.encoding utf-8

 

长期储存密码

去除每次push都弹出的提示输入密码
git config --global credential.helper store

 

回滚篇

请谨慎操作

  • 恢复还没有提交到暂存区的文件修改

          git  checkout -- xxx文件名
          git  reset xxx文件名

 

  • 恢复所有未提交更改

           git  reset

 

  • 恢复暂存区的文件修改

          git reset HEAD xx文件名


执行以上操作后,修改将会退回到未提交到暂存区之前,
然后想再次回滚,可执行git  checkout -- xxx文件名

  • 恢复暂存区某次提交的文件修改

          git reset commitID xxx文件名
          git  checkout -- xxx文件名

 

reset 参数说明:

  • git reset –mixed:

          此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息

 

  • git reset –soft:

          回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可 
 

  • git reset –hard  commitID:

         彻底回退到某个版本,本地的源码也会变为上一个版本的内容

 

远程版本回退:

git无法在远程仓库上直接回退,需要把本地版本改成正确的版本过后,再提交到远程仓库。

git revert commitID
git push

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐