利用好git status的提示信息

利用好git status的提示信息 git里有工作区,暂存区,本地库,远程库这些概念,在此不赘述。本地库里面你会处于某个分支branch上,具体到你会在这条branch的某个版本HEAD,这个HEAD的名字不会变,但它可以移动到它的上一个版本。 而git status是很重要的一条命令,一般在执行git操作前都会看一下这条命令的提示(感觉可以这么说,看懂git status的提示,那基本上你就懂git操作了)。下面开始介绍: Changes not staged for commit Changes not staged for commit: (use”gitadd…”to update what will be committed) use”git checkout—…”to discard changes in working directory) 既然是Changes not staged for commit,就说明出现这个提示下的所有文件改动,都是存在于工作区的。stage是暂存区的意思,not stage说明都不在暂存区,那么说明在工作区。 (use “git add

利用好git status的提示信息

git里有工作区,暂存区,本地库,远程库这些概念,在此不赘述。本地库里面你会处于某个分支branch上,具体到你会在这条branch的某个版本HEAD,这个HEAD的名字不会变,但它可以移动到它的上一个版本。

而git status是很重要的一条命令,一般在执行git操作前都会看一下这条命令的提示(感觉可以这么说,看懂git status的提示,那基本上你就懂git操作了)。下面开始介绍:

Changes not staged for commit

text
Changes not staged for commit:
(use”gitadd…”to update what will be committed)
 use”git checkout—…”to discard changes in working directory)

既然是Changes not staged for commit,就说明出现这个提示下的所有文件改动,都是存在于工作区的。stage是暂存区的意思,not stage说明都不在暂存区,那么说明在工作区。

(use “git add …” to update what will be committed)。执行这条命令就可以工作区里面的改变加入到暂存区。可以执行git add .把当前目录下所有改动加入暂存区。

(use “git checkout – …” to discard changes in working directory)。执行这条命令将丢弃在工作区的改动。可以执行git checkout *把当前目录下所有工作区的改动丢弃掉。

Untracked files

text
Untracked files:
 (use”gitadd…”to include in what will be committed)

Untracked files,就说明出现这个提示下的所有文件都是当前HEAD没有被加入过的文件。这种改动也属于工作区。

(use “git add …” to include in what will be committed)。把Untracked files加入暂存区。

Changes to be committed

text
Changes to be committed:
 (use"gitresetHEAD<file>..."to unstage)

既然是Changes to be committed,那么说明改动已经存在于暂存区,需要提交到本地库上去。执行完git commit以后,会把这条提示下面的所有改动作为一次commit提交到本地库上去。

(use “git reset HEAD …” to unstage)。to unstage说明了这个改动已存在于暂存区,当然也存在于工作区。这条命令清空add命令向暂存区提交的关于file文件的修改。也就是说,只清空暂存区,但不动工作区。

Unmerged paths

text
Changes to be committed:
 (use”gitresetHEAD…”to unstage)

这是我运行git pull和git stash apply后,冲突的文件。在文件中把冲突都保留下来了,并需要自己手动处理。

(use “git reset HEAD …” to unstage)。分析同上。改动已在暂存区。

(use “git add …” to mark resolution)。在你手动修改后,(修改后工作区更新了,但暂存区还没更新),需要add来更新暂存区。

冲突文件

冲突文件示例:

text
<<<<<<<Updated upstream
//来自gitpull的更新 
//来自git stash apply的更新 
>>>>>>>Stashed changes

branch信息

text
On branchmaster
Your branch is up to date with’origin/master’.

你在当前分支master上,且你的分支和远程库origin的master分支是一致的,即本地库的HEAD和远程库的HEAD是同一个。

text
On branchmaster
Your branch is ahead of’origin/master ‘by 1 commit.
(use”git push “to publish your local commits)

你的本地分支比远程分支领先了一次commit。

git reset的提示

Unstaged changes after reset

当前git status的提示是:本地库的版本指向的是最新的这个commit。

text
On bran chmaster
Your branch is ahead of ‘origin/master’by 1 commit.
(use”git push”to publish your local commits)
nothing to commit,work ingtree clean

执行git reset HEAD~后的提示为:

text
Unstaged changes after reset:
M first.java 
D second.java

这条命令会把HEAD指向最新的commit之前的那个版本(清空掉最新的这个commit),同时会把暂存区的改变清空掉,这样,改动就只存在于工作区了。Unstaged意思就是将以前已经stage的改动给Unstaged了。