Git总结

2016/06/03 Git 阅读次数:

摘要: Git学习总结,git命令的基本使用,在工作中如何应用到的具体方法,使用场景的介绍,删除文档,分支冲突解决方案,github项目的使用

* git init 初始化仓库

  • git add 文件名 添加到暂存区
  • git commit -m ‘版本1’ 把暂存区的修改一次性做一次版本记录提交
  • git log 查看版本
  • git log –pretty=oneline 查看版本
  • git reset –hard HEAD^ HEAD版本的上一个版本 HEAD意思是当前最新版本
  • git reset –hard HEAD~1 HEAD版本的上一个版本
  • git reset –hard 8c2dd390 根据序列号回到对应的版本
  • git reflog 查看操作记录
  • 工作区,版本库 git add 是将文件加进暂存区; git commit 提交更改,就是把暂存区的所有内同提交当前分支;
  • git status 工作树状态 未跟踪 就是未添加到暂存区 尚未暂存 就是修改后未提交
  • git 管理修改 ,只会提交暂存区的修改来创建版本
  • git checkout – code.txt 该命令是:丢弃修改,是未添加到暂存区,修改的是工作区

  • git reset HEAD code.txt 该命令是:添加到暂存区后丢弃,先取消暂存, 再使用git checkout – code.txt ,就丢弃了 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作 git checkout – code.txt。 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节(git reset –hard 8c2dd390 )

  • 对比文件不同: git diff HEAD – code.txt 意思是当前版本(HEAD代表当前版本)与 工作区code.txt对比 git diff HEAD HEAD^ – code.txt 当前版本(HEAD)和 上一个版本(HEAD^)的code.txt对比

  • 删除文件: 需要3步

git 是对工作区的操作 1、rm code2.txt 删除工作区 2、git rm code2.txt 删除修改添加到暂存区 3、git commit -m ‘删除文件code2.txt’ 删除提交

  • 分支管理 命令: 查看分支:git branch 有*号的是当前分支 创建分支:git branch 切换分支:git checkout创建+切换分支: git checkout -bgit checkout -b dev 常用的创建分子命令 合并某分支到当前分支: git mergegit merge dev 快速合并 删除分支:git branch -dgit branch -d dev 合并分支后,就可以删除分支 合并分支冲突解决: 需要双方商量,修改文件,再进行和合并 git log –graph –pretty=oneline 查看分支树

  • 分支冲突策略: 通常,合并分支时,如果可能,git会用fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。但是有些快速合并不能成而且合并时没有冲突,这个时候会合并之后并做一次新的提交。

禁止fast forward合并(禁止快速合并)

git merge dev –no-ff -m ‘禁止fast-forward合并’ dev

执行后,会帮我们重新做一次提交

bug分支:

软件开发中,bug就像家常便饭一样。有了bug就需要修复,在git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。

git stash 保存工作现场
1、git checkout -b bug-001 创建临时分支
2、编辑工作区文件
3、git add code.txt 添加暂存区
4、git commit -m '修复bug-001' 提交
5、git checkout master 切换分支
6、git merge --no-ff -m '修复bug-001' bug-001 禁止快速合并
7、git branch -d bug-001 删除临时分支
git stash list 查看工作现场保存记录
git stash pop 恢复工作现场

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

GitHub:

推送分支,就是把该分支上的所有本地提交推送到远程库,推送时要指定本地分支和远程分支,这样,git就会把该分支推送到远程库对应的远程分支上,命令入下。

git push <远程主机名> <本地分支名>:<远程分支名>
例:
git push origin dev
执行如下命令让本地dev分支跟踪远程dev分支
git branch --set-upstream-to=origin/远程分支名称 本地分支名称
例:
git branch --set-upstream-to=origin/dev fev
把远程分支dev上的代码下载并合并到本地所在分支。
git pull <远程主机名> <远程分支名>:<本地分支名>
例:
git pull orgin dev

码云  

码云可以免费创建5个私有仓库,使用和github大同小异

报错处理  

问题: git add,添加到暂存区,commit时一部分文件报这个错

warning: CRLF will be replaced by LF in GeneSmartStay/res/values-zh-rTW/strings.xml.The file will have its original line endings in your working directory.

原因: 使用的html模板都是从网上下载的,commit代码时git会把CRLF转LF,update代码时LF换CRLF

  1. 处理方式: 

    git rm -r –cached ./
    git config core.autocrlf false
    git add ./
    git commit -m ‘test’
    git push

Search

    Table of Contents