1、git config --global user.name? "test" ? ? ? ? ? ? ? ? ???設(shè)置名字
2、git config --global user.email? "test@163.cn"? ? ? ? ? ? 設(shè)置郵箱
3、git init? ? ? 創(chuàng)建版本庫
4、git add file? 把文件添加到倉庫
5、git commit -m "一些提交的備注信息" 把文件提交到倉庫
6、git status? 查看倉庫的狀態(tài)
7、git diff file? 查看文件的改動
8、git log? 顯示從最近到最遠(yuǎn)的提交的日記
9、git reset --head HEAD^? 返回上一個(gè)版本
10、git reflog? 參看所有的操作日記
11、把文件往Git版本庫里添加的時(shí)候,是分兩步執(zhí)行的:? ? 第一步是用git add把文件添加進(jìn)去,實(shí)際上就是把文件修改添加到暫存區(qū);? ? 第二步是用git commit提交更改,實(shí)際上就是把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支。
12、git diff HEAD -- file? 查看工作區(qū)和版本庫里最新版本的區(qū)別
13、git checkout -- file? 丟棄對file在工作區(qū)的修改? ? git checkout -- readme.txt意思就是,把readme.txt文件在工作區(qū)的修改全部撤銷,這里有兩種情況:? ? 一種是readme.txt自修改后還沒有被放到暫存區(qū),現(xiàn)在,撤銷修改就回到和版本庫一模一樣的狀態(tài);? ? 一種是readme.txt已經(jīng)添加到暫存區(qū)后,又作了修改,現(xiàn)在,撤銷修改就回到添加到暫存區(qū)后的狀態(tài)。
14、git reset HEAD file? 把暫存區(qū)的修改撤銷掉(unstage),重新放回工作區(qū)
15、git rm file? ? 刪除一個(gè)文件 1? ? 1).從工作目錄,提交到stage。? ? 2).從stage提交到master。? ? 從工作目錄提交到stage,需要用add或者rm命令,只提交到stage,而沒有提交到master,是不會自動同步到master的。? ? 從stage提交到master用commit命令。? ? 退回也是要分兩步,一個(gè)是從master退回到stage,然后再從stage退回到工作目錄。? ? 對于還沒有提交到stage的,可以從stage用checkout命令退回,這一步會取stage中的文件狀態(tài),覆蓋掉工作目錄中文件的狀態(tài),跟master完全沒關(guān)系。? ? 對于已經(jīng)到達(dá)stage的,想把state中的文件狀態(tài)用master中的覆蓋掉,就用reset命令,這樣就把stage中修改用master的狀態(tài)覆蓋掉了,完全跟工作目錄沒關(guān)系
16、ssh-keygen -t rsa -C "youremail@example.com"? ? ssh的公鑰生成
17、git remote add origin git@github.com:michaelliao/learngit.git? ? 把一個(gè)已有的本地倉庫與遠(yuǎn)程庫關(guān)聯(lián)
18、git remote add origin git@github.com:michaelliao/learngit.git? ? ? 把本地倉庫的內(nèi)容推送到GitHub倉庫
19、git checkout -b dev? ? 創(chuàng)建新的分支,并且轉(zhuǎn)到新的分支上,該語句可以拆分為量句話? ? git branch dev? ? 創(chuàng)建新的分支。git checkout dev? 切換到dev分支上
20、在分支的操作并且提交到倉庫里,然后切回到master,會發(fā)現(xiàn)在分支的改變沒有顯示在master上? ? git merge dev? 合并dev分支的成果到master上。
21、git branch -d dev? 合并完分支后,可以刪除分支
22、git merge --no-ff -m "merge with no-ff" dev? 通過--no-ff? 來指定合并的日記
23、git stash? ? 可以把當(dāng)前工作現(xiàn)場“儲藏”起來,等以后恢復(fù)現(xiàn)場后繼續(xù)工作
24、git stash list? 把之前存儲的工作現(xiàn)場顯示出來
25、git stash apply? 恢復(fù)現(xiàn)場,stash內(nèi)容并不刪除,需要運(yùn)行g(shù)it stash drop來刪除
26、git stash pop? ? 恢復(fù)現(xiàn)場,并把stash刪除
27、git branch -D dev? 強(qiáng)制刪除分支,刪除后會導(dǎo)致該分支的數(shù)據(jù)丟失
28、多人協(xié)作的工作模式通常是這樣:? ? 首先,可以試圖用git push origin branch-name推送自己的修改;? ? 如果推送失敗,則因?yàn)檫h(yuǎn)程分支比你的本地更新,需要先用git pull試圖合并;? ? 如果合并有沖突,則解決沖突,并在本地提交;? ? 沒有沖突或者解決掉沖突后,再用git push origin branch-name推送就能成功!
29、git tag v1.0? 打版本,默認(rèn)是當(dāng)前最新提交的commit。還可以創(chuàng)建帶有說明的標(biāo)簽,用-a指定標(biāo)簽名,-m指定說明文字? ? git tag v0.9 6224937? 指定版本的commit
30、git tag -d v0.1? 刪除指定的版本
31、git push origin v1.0 推送指定版本到遠(yuǎn)程? ? 命令git push origin可以推送一個(gè)本地標(biāo)簽;? ? 命令git push origin --tags可以推送全部未推送過的本地標(biāo)簽;? ? 命令git tag -d可以刪除一個(gè)本地標(biāo)簽;? ? 命令git push origin :refs/tags/可以刪除一個(gè)遠(yuǎn)程標(biāo)簽。
32、遠(yuǎn)程庫已經(jīng)準(zhǔn)備好了,下一步是用命令git clone克隆一個(gè)本地庫:$ git clone git@github.com:michaelliao/gitskills.git
你也許還注意到,GitHub給出的地址不止一個(gè),還可以用https://github.com/michaelliao/gitskills.git這樣的地址。