Git 基础知识笔记

Git Status

1
2
3
4
5
$ git status -s M README
MM Rakefile
A lib/git.rb
M lib/simplegit.rb
?? LICENSE.txt
  • ‘M’ 代表modified
  • ‘A’ 代表staged
  • ‘??’ 代表untracked

有两列,前列代表已经在stage中的状态,后面是代表当前working directory的状态,比如Rakefile是两个MM第一个代表在修改后已经staged了,第二个代表修改后还没有staged。下一次commit只会提交前一次staged的内容。

.gitignore

1
2
3
4
5
# no .a files
*.a

# but do track lib.a, even though you're ignoring .a files above
!lib.a

!的意思是反模式,就是除什么之外的意思。比如上面是忽略所有.a结尾的文件,除了lib.a这个文件。

git rm

1
git rm --cached README

--cached,是将文件从git中移除不进行track,但是会保留文件,如果没加会删除文件。

git log

1
git log A..B

查看B中有几个commit是A没有的。

git stash

如果切换分支的时候不想commit,要切换的时候:

1
git stash

切换回来看看保存了什么stash:

1
git stash list

要还原哪个stash

1
git stash apply stash@{2}

删除stash:

1
git stash drop