美文网首页
Git使用学习

Git使用学习

作者: 行者之魂_84651 | 来源:发表于2018-10-19 17:02 被阅读0次

放弃修改

  • 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
  • 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。
  • 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

版本回退:

  • 指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
  • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
  • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本

分支管理:

  • 查看分支:git branch
  • 创建分支:git branch <name>
  • 切换分支:git checkout <name>
  • 创建+切换分支:git checkout -b <name>
  • 合并某分支到当前分支:git merge <name>
  • 删除分支:git branch -d <name>

解决冲突:

  • 当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
  • 解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
  • 用git log --graph命令可以看到分支合并图。

bug分支:

  • 修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
  • 当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场

删除未合并的分支:

  • 开发一个新feature,最好新建一个分支;
  • 如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。

提交文件:

  • git add -A 提交所有变化
  • git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
  • git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件

rebase 提交历史线:

  • rebase操作可以把本地未push的分叉提交历史整理成直线;
  • rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。

标签管理:

  • 令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;
  • 命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;
  • 命令git tag可以查看所有标签。
  • 命令git push origin <tagname>可以推送一个本地标签;
  • 命令git push origin --tags可以推送全部未推送过的本地标签;
  • 命令git tag -d <tagname>可以删除一个本地标签;
  • 命令git push origin :refs/tags/<tagname>可以删除一个远程标签。

忽略文件:

  1. 忽略某些文件时,需要编写.gitignore;
  2. gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!
  3. 已经推送(push)过的文件,想在以后的提交时忽略此文件,即使本地已经修改过,而且不删除git远程库中相应文件,执行命令
git update-index --assume-unchanged Xml/config.xml

后面的 Xml/config.xml 是要忽略的文件的路径。
如果要忽略一个目录,打开 git bash,cd到 目标目录下,执行:

git update-index --assume-unchanged $(git ls-files | tr '\n' ' ')

比如有一个配置文件记录数据库的链接信息,每个人的链接信息肯定不一样,但是又要提供一个标准的模板,用来告知如何填写链接信息,那么就需要在git远程库上有一个标准配置文件,然后每个人根据自己的具体情况,修改一份链接信息自用,而且不会将该配置文件提交到库

git update-index –assume-unchanged –path 可以忽略文件 
git update-index –no-assume-unchanged –path 可以取消忽略文件 

但是忽略的文件多了,想找出所有被忽略的文件,暂时找到下面的办法,

git ls-files -v | grep '^h\ '

提取文件路径,方法如下

git ls-files -v | grep '^h\ ' | awk '{print $2}'

所有被忽略的文件,取消忽略的方法,如下

git ls-files -v | grep '^h' | awk '{print $2}' |xargs git update-index --no-assume-unchanged  

本地分支存在远程分支已经删除的分支

  1. 使用命令查看远程分支和本地分支的详细信息
git remote show origin
git查看分支信息命令
  1. 运行命令,删除那些远程仓库不存在的分支。
git remote prune origin
git删除远程不存在的分支

相关文章

  • 一日一记

    今日学习git使用

  • git技术,GitHub、GitLab

    git学习 Git教程(小白快速入门版) Git教程(简化版) git详细学习 Gitlab的管理使用手册git初...

  • 2018 11 8

    学习使用git管理代码

  • Git命令语法汇总

    本文是在学习廖雪峰Git教程后对常用Git命令的使用总结,仅供在使用Git时方便查找。 一、Git简介 Git是当...

  • 【openshift-3】添加Flask等第三方库+部署自己的应

    前提*:请先学习git和flask的简单使用 1、我们的操作只需要基础的git知识,如何使用git:Pro Git...

  • 2018 11 9

    学习使用git管理代码版本

  • 码农周刊分类整理 -- G

    GIT [译] 通过示例学习 Git 内部构造(@夏永锋_SJTU) Github Pages 使用教程 git ...

  • [git] git 学习

    [git] git 学习 起因 被老板喷了,让我回炉重新学一下git 基础使用 其实平常在使用git的过程中都只是...

  • 学习使用Git

    Git终端下的一些快捷命令: 参考链接:ubuntu 终端快捷方式汇总

  • Git使用学习

    放弃修改 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- ...

网友评论

      本文标题:Git使用学习

      本文链接:https://www.haomeiwen.com/subject/dthuzftx.html