git diff #是工做区(work dict)和暂存区(stage)的比较
git diff --cached #是暂存区(stage)和分支(master)的比较
git
Git比其余版本控制系统设计得优秀,由于Git跟踪并管理的是修改,而非文件。缓存
$ git add readme.txt $ git commit -m "append GPL" #-m为添加评论
$ git log --pretty=oneline
$ git reset --hard 3628164
Git提供了一个命令git reflog用来记录你的每一次命令:app
$ git reflog
工做区与缓存区的区别见图fetch
cat readme.txt
$ git checkout -- readme.txt #命令中的--很重要,没有--,就变成了“切换到另外一个分支”的命令,
git reset HEAD file能够把暂存区的修改撤销掉(unstage),从新放回工做区 $ git reset HEAD readme.txt
$ rm test.txt $ git rm test.txt $ git commit -m "remove test.txt"
$ git checkout -- test.txt # git checkout实际上是用版本库里的版本替换工做区的版本,不管工做区是修改仍是删除,均可以“一键还原”。
最简单的流程:spa
1. git clone https//... 2. 编辑要该的内容 3. git add 文件名 4. git commit -m 'comment' 5. git push https//...
建立dev分支,而后切换到dev分支 $ git checkout -b dev #命令加上-b参数表示建立并切换
git branch命令查看当前分支: $ git branch * dev master git branch命令会列出全部分支,当前分支前面会标一个*号。 查看分支:git branch 建立分支:git branch <name> 切换分支:git checkout <name> git checkout master 建立+切换分支:git checkout -b <name> 合并某分支到当前分支:git merge <name> 删除分支:git branch -d <name>
分支使用步骤:设计
1.git checkout -b dev 建立分支 2.在分支上修改文件 3.git add readme.txt 4.git commit -m 'modify readme' 5.git checkout master 切换回master分支 6.git merge dev 合并分支 7.git branch -d dev 删除分支 -D 大写的D为强行删除 8.git branch 查看分支
当不用fast forword 模式合并时,Git就会在merge时生成一个新的commit,这样,从分支历史上就能够看出分支信息。
此时merge步骤版本控制
1.git cheakout -b dev 2.修改文件 3.git add readme.txt 4.git commit -m 'modify readme' 5.git checkout master 6.git merge --no-ff -m "merge with no-ff" dev (--no-ff 非快速模式,由于本次合并要建立一个新的commit,因此加上-m参数,把commit描述写进去。) 7.git branch -d dev 8.git branch 合并分支时,加上--no-ff参数就能够用普通模式合并,合并后的历史有分支,能看出来曾经作过合并,而fast forward合并就看不出来曾经作过合并。
Git还提供了一个stash功能,能够把当前工做现场“储藏”起来,等之后恢复现场后继续工做git stash
日志
修复好bug后,用git stash pop
,恢复的同时把stash内容也删了code
git push origin master git push origin dev
$ git tag v0.9 6224937 (6224937为版本号)blog
1. git remote add upstream https//.. 2. git fetch upstream 3. git rebase upstream/master #将全部更新推到本身的远端repo