1.工做區 當前直接操做的內容java
2.暫存區 臨時存放改變的內容git
3.版本庫 倉庫中保存的內容github
1.git add緩存
暫存區目錄樹更新ssh
修改或者增長的文件內容會寫到對象庫中的對象中工具
2.git commiturl
暫存區目錄樹寫到版本庫中spa
3.工做區和暫存區比較日誌
git diff netty
4.暫存區和HEAD比較
git diff --cached
3.工做區和HEAD比較
git diff HEAD
1.git status
查看文件修改狀況
2.git add [filename]
添加已修改的文件名
3.git commit -m "reason for commit"
將已加入的文件進行提交 並附上提交說明
4.git push origin master
把本地commit同步到遠程倉庫master分支
1.git grep hello
在搜索全部工做區文件包含hello的內容
2.git clone url localName
克隆一份拷貝到本地
2.1 git clone url localName --bare
拷貝一份裸倉庫到本地
3.git log --stat
git log 可以查看全部提交的日誌。 加上--stat表示顯示每次提交文件變動統計
4.git diff filePath
對比修改的內容
5.git commit --ament -m "sasdasd"
提交到上一次的commit中,而且修改提交說明
6.git stash
將工做區和暫存區的改動所有封存起來
7.git branch
查看全部分支,帶星號的是當前所在分支
8.git branch work
建立名爲work的分支
9.git checkout work
切換到名爲work的分支
git只有在根目錄存在.git目錄,這是工做區對應的版本庫。
10.git config --global alias.st status
給git status 中 status設置別名爲st
11.git init demo
初始化版本庫demo
12. git init demo --bare
建立一個裸倉庫,裸倉庫的意思就是倉庫不保留工做區的內容。只有設置這個才能讓別人push代碼。爲何要裸倉庫才能被push,原意很簡單,假設倉庫有不少分支,每一個分支的工做區可能不同,這樣以那個分支做爲工做區呢?工做區對於不是用來開發的共享倉庫有什麼意義呢?因此做爲集中的共享倉庫是沒有工做區的。
1.git reset --hard HEAD^
這個命令的意思是撤銷前一個提交,不把以前的提交撤銷到緩暫存區。
若是使用參數--soft,就是撤銷前一個提交,並放入緩存區。
2.git reset --hard HEAD^
這個命令是很是危險的,不過在git裏面文件的修改記錄依舊保存在.git中的objects目錄。咱們依然能夠找回來。
方法就是使用git reflog,這個能夠看到全部的歷史操做記錄,而後找到上一次提交的sha1的值,經過git reset sha1值就能回到上一次提交的時間點。
git cherry-pick dc4de390ec48ee389ff93924c9b587a5d343e7a0
git tag -m "message for tag" tag_1.1.0 <commitID>
針對某個提交爲止打tag。
tag只是默認只是本地可見,須要顯示推送到遠程倉庫
gerrit能夠認爲git代碼審覈工具。是用java寫的。
gerrit自己基於ssh協議實現了一套Git服務
--------推送項目到git倉庫
git remote add origin git@github.com:lubby1990/netty-test.git
參考文獻:Git權威指南 蔣鑫