git基礎入門之經常使用命令操做

本內容參考:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000git

初學,有什麼不對的地方 ,歡迎指出github

 

1、工做區(本地倉庫)服務器

一、建立倉庫(repository):git initapp

用法:在文件夾(變成倉庫的文件夾)目錄下執行 git initssh

二、添加文件:git add [文件路徑]ui

如:版本控制

提交文件:git add test.txt
提交文件夾:git add test
提交任意文件: git add *
提交當前目錄全部文件: git add .
添加全部文件,同時將已刪除文件從倉庫中刪除:git add -u
 
三、刪除文件:
1)rm [文件路徑] 或直接在文件管理器把文件刪除
如:rm text.txt
注:恢復文件 git checkout rext.txt
 
2)刪除並刪除倉庫中的版本
git rm [文件路徑]
注:
1))恢復文件:git rest HEAD [文件路徑]
2))git checkout [文件路徑]
 
四、回退版本:git rest hard commit_id
如:git rest --hard 12345
git reset命令既能夠回退版本,也能夠把暫存區的修改回退到工做區。當咱們用 HEAD時,表示最新的版本。
用命令 git reset HEAD file能夠把暫存區的修改撤銷掉(unstage),從新放回工做區
 
五、獲取最的提交信息:git log
注:可根據返回的日誌的id回退版本
如:git rest --hard 12345
 
六、查看命令歷史:git reflog
 
七、獲取倉庫狀態信息(增、刪、改文件相關信息):git status
 
八、撤銷修改(丟棄工做區的修改)git checkout -- [文件]
注:git checkout -- file命令中的 --很重要,沒有 --,就變成了「建立一個新分支」的命令
 
2、遠程倉庫
一、建立SSH Key
1)在用戶主目錄下,看看有沒有.ssh目錄,若是有,再看看這個目錄下有沒有 id_rsaid_rsa.pub這兩個文件,若是已經有了,可直接跳到下一步。若是沒有,打開Shell(Windows下打開Git Bash),建立SSH Key,密碼是可選項,輸入以下命令:
ssh-keygen -t rsa -C "youremail@example.com"
最後將你的公鑰交給git管理人
 
二、關聯遠程版本庫
倉庫下運行命令:git remote add origin [git地址]
如:git remote add origin git@github.com:michaelliao/learngit.git
 
三、本地庫的內容推送到遠程:git push -u origin [文件]
如:
git push -u origin master
-u:因爲遠程庫是空的,第一次推送 master分支時,會把本地的 master分支內容推送的遠程新的 master分支,還會把本地的 master分支和遠程的 master分支關聯起來,
關聯後,推送到遠程能夠把加-u參數
 
四、克隆遠程庫到本地:git clone [git地址]
如:git clone git@github.com:michaelliao/gitskills.git
Git支持多種協議,包括 https,但經過 ssh支持的原生 git協議速度最快。
 
五、分支(branch)
1)建立分支:git branch [分支名]
如:git branch dev
 
2)切換分支:git checkout [分支名]
如:git checkout dev
 
3)建立並切換分支 : git checkout -b [分支名]
如:git check -b dev 
其實是執行了1) 和2)兩條命令
 
4)查看分支:git branch
注:git branch命令會列出全部分支,當前分支前面會標一個*號
 
5) 合併分支到當前分支:git merge [分支名] 
如:git merge dev 
 
6)刪除分支:git branch -d [分支名]
如:git branch -d dev
 
7)刪除遠程分支:
git branch -d [分支名]  //先刪除本地分支
git push origin :[分支名]  //再推上服務器
 
 
六、解決衝突
<<<<<<< HEAD(HEAD指向當前分支末梢的提交。)
Creating a new branch is quick & simple.(當前分支中的內容。)
=======
Creating a new branch is quick AND simple.(merge過來的另外一條分支上的代碼。)
>>>>>>> feature1(分支的名字)
 
七、分支管理策略
1)Fast forward模式(默認):這種模式下,刪除分支後,會丟掉分支信息,合併就看不出來曾經作過合併。
2)普通模式(--no-ff參數):普通模式合併,合併後的歷史有分支,能看出來曾經作過合併。
如:git merge --no-ff dev (使用普通模式)
 
八、儲存/恢復工做區 
1)儲存:git stash
2)恢復:
2-1)查看儲存信息:git stash list
2-2)恢復:
2-2-1)git stash apply:恢復後,stash內容並不刪除,須要用git stash drop來刪除;
2-2-2)git stash pop:恢復的同時把stash內容也刪了:
用法:git stash apply [stash_id]/git stash pop [stash_id]
如:git stash apply stash@{0}
 
九、丟棄一個沒有被合併過的分支(強行刪除):git branch -D [分支名]
如:git branch -D dev
注:沒有合併過的分支,需求強行刪除才能夠刪除
 
十、查看遠程庫信息: git remote
-v:查看詳情信息
注:沒有推送權限,就看不到push的地址 
 
十一、推送分支:git push origin [分支名]
 
十二、拉取分支:git pull origin [分支名]
 
1三、創建本地分支和遠程分支的關聯:git branch --set-upstream [工做區分支名] origin/[服務器分支名]
如:git branch --set-upstream dev origin/dev
 
1四、忽略文件
在Git工做區的根目錄下建立一個特殊的 .gitignore文件,而後把要忽略的文件名填進去,Git就會自動忽略這些文件。
將忽略文件添加版本控制也能夠使用命令:git add [文件] -f
 
1五、忽略已跟蹤的文件 

git update-index --assume-unchange [文件名]rest

相關文章
相關標籤/搜索