添加到暂存区(stage)
git add <file>
查看工作区暂存区状态
git status
从暂存区提交到最新版本
git commint -m "comment"
比较工作区和版本库最新版本的区别:(貌似HEAD可以不输入,默认就是HEAD?)
git diff HEAD -- readme.txt
比较本地库特定文件和远程库该文件的区别:
git diff origin/FDbank:powercore-base/pom.xml FDbank:powercore-base/pom.xml
比较工作区特定文件和远程库该文件的区别
git diff origin/FDbank:powercore-base/pom.xml powercore-base/pom.xml
查看历史记录,可以追加参数以每个记录单行显示:--pretty=oneline
git log
回退到上个版本(上上个版本就再加一个^)
git reset --hard HEAD^
根据hashcode来回到某个版本
git reset --hard 11801df
撤销工作区(而非暂存区)的修改,本质上其实是用版本库里的版本替换工作区的版本
git checkout -- readme.txt
把暂存区的修改撤销掉(unstage),重新放回工作区
git reset HEAD readme.txt
从文件系统和版本库里删除一个文件
rm test.txt git rm test.txt git commit -m "remove test.txt"
创建并切换分支
$ git checkout -b dev Switched to a new branch 'dev'
git checkout
命令加上-b
参数表示创建并切换,相当于以下两条命令
$ git branch dev $ git checkout dev Switched to branch 'dev'
查看当前分支
$ git branch
切换分支,例如切换到master分支
$ git checkout master
本地master
分支的最新修改推送至GitHub(远程库的名字就是origin
,这是Git默认的叫法,也可以改成别的,但是origin
这个名字一看就知道是远程库。)
$ git push origin master
删除dev
分支
git branch -d dev
软件开发中,bug就像家常便饭一样。有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修后,合并分支,然后将临时分支删除。
当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101
来修复它,但是,等等,当前正在dev
上进行的工作还没有提交
幸好Git还提供了一个stash
功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:
$ git stash Saved working directory and index state WIP on dev: 6224937 add merge HEAD is now at 6224937 add merge
(
刚才的工作现场存到哪去了?用git stash list
命令看
工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:
一是用git stash apply
恢复,但是恢复后,stash内容并不删除,你需要用git stash drop
来删除;
另一种方式是用git stash pop
,恢复的同时把stash内容也删了:
)
强行删除一个还未被合并的分支
$ git branch -D feature-vulcan
Deleted branch feature-vulcan (was 756d4af).
回退单个文件到指定版本
$ git log MainActivity.java
$ git reset a4e21523 MainActivity.java
注:stage又名index
例子:
在.git/config里配上用户名密码对我来说比较方便
[core]
symlinks = false
repositoryformatversion = 0
filemode = false
logallrefupdates = true
[remote "origin"]
url = https://[username]:[password]@github.com/408657544/springbank.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master