git clone
从远程仓库中clone repo到本地
git clone git@youradrress:/home/git/bproj.git
git status
查看状态,通常在执行git add ,git commit ,git pull,git push 等命令前后执行。
git status -s 显示扼要信息
这里有两位字母,第一位是指stage area(暂存区)与版本管理库的区别
第二位 是指Working directory与stage area(暂存区)git add
添加文件到缓冲区
git add . //添加项目全部改变的内容 git add filename //添加指定文件到暂存区
git commit -m “注释”
将git add 添加的内容添加到本地版本库中,
git commit -am "注释" //从Working Directory直接提交到git repo(版本库) 这个过程中也会将Stage Area也进行了更新。
git pull
将远程仓库中的内容pull到本地,通常在git pull 前使用。
git push
将提交到本地的内容push到远程服务器上,
git push origin master //将内容push到origin指定的仓库,与仓库的master合并
git checkout filename
当文件修改后,未执行git add 时,想回到文件修改前,将stage area中的该文件取出来覆盖掉Working Directory 中的文件
解析视频:http://edu.51cto.com/lesson/id-33758.html
git reset filename
当文件修改后,执行了git add filename 时,想要还原,是将git repo(版本库)中的最后一个版本,用来覆盖stage area中文件。相当于撤销该git add
git checkout
git checkout HEAD filename
使用git repo(版本库)中的版本,覆盖Working Directory 中的该文件。
git checkout branchname //切换到分支branchname git checkout -b branchname//创建并切换到branchname分支
git diff
查看具体的文件修改信息(查看Working Directory 与stage area的区别)
解释视频:http://edu.51cto.com/lesson/id-33757.html
对项目中的a文件,将hello 改为hi,使用git diff的具体信息如下
xu:test xiaokai$ git diff
diff --git a/a b/a
index 008b3a8..e80035b 100644
--- a/a
+++ b/a
@@ -1,2 +1,2 @@
-print 'hello,world'
-print 'hello.world'
+print 'hi,world'
+print 'hi.world'
git diff --staged //查看stage area 与 git repo(版本库)的区别
git diff HEAD //查看Working Directory 与git repo 的区别
git rm
删除文件 git rm filename // 与命令git add 对应 git rm --cached filename // 从git repo(版本库) 中删除filename,但保留Working Directory中的该文件,这里相当于从stage area 中删除filename
git stash
当修改的内容比较多,但是现在有紧急的bug需要处理,这时用git stash进行缓冲。 然后改完冲突后,再回来将取出刚才的状态。
git stash list //打开抽屉列表 git stash pop //这样就回到了修改bug 前的状态。
取出刚才的编写状态后,会发现我们的bug 也已经处理好了。
git branch
在开发中我们,需要在一个分支上做开发,这时我们需要创建分支。 git branch dev //创建一个名为dev 的分支 git branch //查看当前有几个分支 git checkout dev //转换到dev分支 git checkout -b name //创建并切换到name分支 git branch -d name//删除分支name git branch -D name //强制删除分支na me
git merge
git merge branchname //把branchname分支上的内容合并到master上。
git cat-file
查看commit对象中的内容
git cat-file -t HEAD //查看最新的HEAD指向的对象 git cat-file -p HEAD //查看最新的HEAD指向的对象的内容
xu:test xiaokai$ git cat-file -t HEAD
commit
xu:test xiaokai$ git cat-file -p HEAD
tree e220508d3a3e1e4e2431662e95e50c4b1b90bb67
parent 4cfd836bb4c43ab839ab72a9264d18703bbbcc95
author Kenway090704 <254903810@qq.com> 1494584742 +0800
committer Kenway090704 <254903810@qq.com> 1494584742 +0800
xu:test xiaokai$ git cat-file -t e22050
tree
xu:test xiaokai$ git cat-file -p e22050
100644 blob 8b137891791fe96927ad78e64b0aad7bded08bdc .gitignore
100644 blob 9b39c309b74bcce73d883fb5f7e10e4366788ba1 .swo
100644 blob 24e6023c7c445ce2ee0e1ee70b74672d3cc8a598 .swp
040000 tree 58dabbb367f0f8fe4ac0a4560e0058c449cbae3a No1BroadcastDemo
100644 blob 50af85a3e27cf13616cc9e049a392e4a7a03287a README.md
100644 blob 0957764f7c327bef3f24a3d93850e645eeadb51a a
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 b
100644 blob 4fcac3ebc34f24209b81884181f55f5b0ad528f2 c
git log –oneline
查看commit 记录
xu:.git xiaokai$ git log --oneline
1c24ef2 update 2 files
4cfd836 quick fix
34240c9 c
5d4bfcf del c
bdd8950 del master
6fdb1b4 add a aaa
897be5d akdkf
c41f243 .swp
d92bae7 aa
988ab09 commit
19ed88f ll
045b842 commit .gitignore a
c3a1740 modify a
ef7077d add master
7e1fc3f add No1BroadcastDemo
15c11d4 add a b
af6b54e Create README.md
70bee88 del a
61d92aa del BpApp
349555c add BpApp code
4367e22 add a b
- git rev-parse
判读HEAD指向的对象的哈希直
xu:.git xiaokai$ git rev-parse HEAD
1c24ef2b48c622cce92c4f00d636a11dfc82fc3e
git show
查看某一个提交的版本中的某一个文件的内容:例如查看倒数第四个提交的版本中a文件的内容,有两种方法:
git cat-file -p HEAD~4:a
git show HEAD~4:a
xu:.git xiaokai$ git cat-file -p HEAD~4:a print 'hi,world' print 'hi.world' ppp aaa xu:.git xiaokai$ git show HEAD~4:a print 'hi,world' print 'hi.world' ppp aaa