檢查git
是否安裝:$ git
新增git
個人資訊:
$ git config --global user.name "your name"
$ git config --global user.email "[email protected]"
建立乙個版本庫
$ mkdir learngit //建立乙個空目錄
$ cd learngit //切換到
learngit目錄
$ cd - //退回上乙個目錄
$ pwd //顯示當前目錄
把這個目錄變成git
可以管理的倉庫:$ git init
檢視版本庫狀態:$ git status
檢視具體修改了什麼內容
$ git diff
$ git diff readme.txt
提交修改和提交新檔案是一樣的兩步
$ git add readme.txt
$ git commit -m "注釋說明"
$ git add * -f //新增所有檔案
檢視版本庫中的檔案:$ ls
檢視版本庫修改記錄
$ git log
$ git log --pretty=oneline //簡潔版
把當前版本回退到上乙個版本
$ git reset --hard head^
$ git reset --hard head~100 //回退到上
100個版本
$ git reset --hard 3628164 //回退到某個修改的版本號
檢視某個檔案的內容:$ cat readme.txt
檢視工作區和版本庫裡面最新版本的區別
$ git diff head -- readme.txt
把暫存區的修改撤銷掉(unstage
),重新放回工作區
$ git reset head readme.txt
丟棄工作區的修改,使其恢復之前狀態(還未add
進暫存區)
$ git checkout -- readme.txt
普通刪除工作區中沒用的檔案
$ rm test.txt
確實要從版本庫中刪除該檔案,那就用命令git rm
刪掉,並且
git commit
$ git rm test.txt
$ git commit -m "注釋說明"
刪除某目錄下檔案
$ git rm ssh/* -r
$ git commit -a -m 『
remove .idea
』 //提交
.注意是單引號
把誤刪的檔案恢復到最新版本(沒有commit
之前)
$ git checkout -- test.txt
遠端連線模式github
連線github
,提供git
倉庫託管服務;
id_rsa
是私鑰,
id_rsa.pub
是公鑰,可以放心地告訴任何人
$ ssh-keygen -t rsa -c "[email protected]"
本地倉庫的內容推送到github
倉庫,先將本地倉庫與之關聯
$ git remote add origin [email protected]:andsion/learngit.git
下一步,就可以把本地庫的所有內容推送到遠端庫上
$ git push -u origin master
從現在起,只要本地作了提交,就可以通過命令提交到github
,前提本地已經
commit
$ git push origin master //master分支是主分支,因此要時刻與遠端同步;
轉殖乙個本地庫,將github
專案轉殖到本地
$ git clone [email protected]:andsion/gitskills.git
<-- 分支總結
-->
檢視分支:$ git branch
建立分支:$ git branch name
切換分支:$ git checkout name
建立+切換分支:$ git checkout -b name
合併某分支到當前分支:$ git merge name
刪除分支:$ git branch -d name
檢視分支合併圖:$ git log --graph
禁用fast forward
合併分支:$ git merge --no-ff -m "說明
" dev
隱藏當前工作區的改動:$ git stash
檢視隱藏的資訊:$ git stash list
恢復隱藏的工作內容
內容並不刪除,需要用git stash drop來刪除
用git stash pop
,恢復的同時把
stash
內容也刪了
恢復指定的stash
(先用git stash list
檢視)
團隊協作
你的小夥伴要在dev
分支上開發,就必須建立遠端
origin
的dev
分支到本地
$ git checkout -b dev origin/dev
首先,可以試圖用git push origin branch-name
推送自己的修改;
$ git push origin master
如果推送失敗,則因為遠端分支比你的本地更新,需要先用git pull
試圖合併;
$ git pull
如果合併有衝突,則解決衝突,並在本地提交;
沒有衝突或者解決掉衝突後,再用git push origin branch-name
推送就能成功!
如果git pull
提示「no tracking information
」,則說明本地分支和遠端分支的鏈結關係沒有建立,用命令
$ git branch --set-upstream branch-name origin/branch-name
衝突解決的一般過程
1.檢視衝突
git rebase master
2.解決完乙個補丁應用的衝突後,執行下面命令標記衝突已解決
git add -u
3.重新
add commit
修改後的檔案
4.如果想回到
rebase
執行之前的狀態,可以執行
git rebase --abort
建立標籤
1.首先,切換到需要打標籤的分支上
$ git checkout master
2.敲命令
git tag
就可以打乙個新標籤
$ git tag v1.0
3.用命令
git tag
檢視所有標籤
$ git tag
4.預設標籤是打在最新提交的
commit
上,若要打之前的標籤,需要找到歷史提交的
commit id
$ git tag v0.9 6224937
$ git tag -a v0.1 -m "version 0.1 released" 3628164 //帶說明的標籤
5.用命令
git show
可以看到說明文字
$ git show v0.1
6.標籤打錯了,也可以刪除
,只是本地刪除,需要推送某個標籤到遠端
$ git tag -d v0.1 //刪除標籤
$ git push origin v1.0 //推送
$ git push origin --tags //推送全部尚未推送到遠端的本地標籤
7.刪除遠端標籤
$ git tag -d v0.9 //先從本地刪除
$ git push origin :refs/tags/v0.9 //然後,從遠端刪除
過濾檔案
輸入 touch .gitignore 在資料夾就生成了乙個「.gitignore」檔案
# 過濾資料夾
build/
# 過濾所有.class檔案
*.class
# 過濾.gitignpre檔案
.gitignpre
Git常用命令總結
原文 author joseph lee e mail fdlixiaojun gmail.com 基礎概念 git是分布式版本控制系統,在每個主機上都儲存這版本庫的完整映象,這於cvs,svn 等集中式版本控制系統不同,集中式版本控制系統僅是在伺服器上儲存有所有資訊。git檔案更改後是以快照的方式...
git常用命令總結
一 分支新建與切換 git中的分支,本質上僅僅是個指向 commit 物件的可變指標。1 新建乙個分支 比如新建乙個名為testing的分支 git branch testing 即是在當前commit物件上新建了乙個分支指標 注 head指向當前所在的分支,用cat git head可以檢視 2 ...
Git常用命令總結
1.git init 建立 倉庫 2.git add 將對應目錄下所有的檔案及資料夾新增進來,準備提交 3.git commit m content 真正提交 m後面跟的是對本次提交的描述 4.git status 檢視 庫修改內容 5.git diff git diff 檔案具體路徑 檢視具體修改...