1、git init
通過git init命令把這個(gè)目錄變成Git可以管理的倉(cāng)庫(kù)
2、在git 同目錄下加入文件
git add readme.txt 將此文件加入即將提交的列表中
git commit -m 'comment' 提交修改.-m制定備注
3、git status
查看目前git repository 狀態(tài),如果有修改的文件會(huì)在此處提醒
4、git diff
對(duì)比文件與上一個(gè)文件的版本
5、git log
查看提交記錄,提交日志
--pretty=oneline 簡(jiǎn)略信息查看
6、git reset --hard HEAD^
回退到上一個(gè)版本
git reset --hard 3628164 后邊這個(gè)數(shù)字是版本的hash值的前幾位。得到這個(gè)值就可以將git的HEAD指針指向那個(gè)版本,所以,需要得到這個(gè)commit id
7、git reflog
回退以后如何回到未來,使用此命令查找執(zhí)行過的HEAD位置移動(dòng)的命令,查找到commit id的前幾位,然后用 git reset --hard + commit id 即可回到未來
8、工作區(qū)和暫存區(qū)的概念
工作區(qū)是目前做任何修改的地區(qū)
暫存區(qū)是將上一版本和這一版本對(duì)比以后,然后將修改過的文件git add 到暫存區(qū)
9、git是字符級(jí)別的提交。先修改一次文件,然后add ,然后在修改一次文件,然后再commit,則第二次修改未被commit上去
10、git diff HEAD -- readme.txt
查看工作區(qū)和版本庫(kù)里邊最新版本的區(qū)別
11、git checkout -- readme.txt
讓這個(gè)文件回到最近一次git commit或git add時(shí)的狀態(tài)。-- 很重要,沒有這兩 - 就是回到另外一個(gè)分支了
12、git reset HEAD file
將add 到暫存區(qū)的文件撤銷,然后在用get checkout -- file 這樣整個(gè)世界就清靜了
13、git rm
刪除文件以后,從版本庫(kù)中,確認(rèn)這個(gè)文件確實(shí)不要了以后,直接git rm 然后git commit
如果git rm 一個(gè)文件后,得先git reset HEAD filename 后,再git checkout -- filename 就把刪除的文件找到工作區(qū)了
14、git push -u origin master
把當(dāng)前分支推送到遠(yuǎn)程.
由于遠(yuǎn)程庫(kù)是空的,我們第一次推送master分支時(shí),加上了-u參數(shù),Git不但會(huì)把本地的master分支內(nèi)容推送的遠(yuǎn)程新的master分支,還會(huì)把本地的master分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來,在以后的推送或者拉取時(shí)就可以簡(jiǎn)化命令。
15、git push origin master
從現(xiàn)在起,只要本地作了提交,就可以通過此命令把本地master分支的最新修改推送至GitHub,現(xiàn)在,你就擁有了真正的分布式版本庫(kù)!
16、git clone git@github.com:wyn199303/gitskills.git
從github一個(gè)版本庫(kù)中克隆一個(gè)
17、git checkout -b dev
切換到一個(gè)新的分支 -b 表示創(chuàng)建并切換,相當(dāng)于
git branch dev
git checkout dev
18、git branch 查看分支,當(dāng)前分支有一個(gè)*號(hào)
19、git merge dev
合并指定分支到當(dāng)前分支,合并完以后就可以放心的刪除dev分支了
20、git branch -d dev
刪除dev分支
21、git log --graph
可以看到分支合并圖
22、merge的時(shí)候如果兩個(gè)分支發(fā)生沖突了,那么直接打開那個(gè)文件進(jìn)行手動(dòng)修改,然后直接git add && git commit 即可
23、通常,合并分支時(shí),如果可能,Git會(huì)用Fast forward模式,但這種模式下,刪除分支后,會(huì)丟掉分支信息。
24、git merge --no-ff -m "merge with no-ff" dev
使用 --no-ff模式進(jìn)行merge,并且進(jìn)行一個(gè)commit 這樣merge就會(huì)產(chǎn)生一個(gè)commit id,使用git log就可以看到此次merge了
25、master分支應(yīng)該是非常穩(wěn)定的,也就是僅用來發(fā)布新版本,平時(shí)不能在上面干活
26、dev分支是不穩(wěn)定的,到某個(gè)時(shí)候,比如1.0版本發(fā)布時(shí),再把dev分支合并到master上,在master分支發(fā)布1.0版本;
27、git status 將現(xiàn)場(chǎng)存儲(chǔ)起來,以后恢復(fù)后繼續(xù)工作
git status 以后切換到需要修改的分支,然后再創(chuàng)建一個(gè)臨時(shí)分支并切換過去,然后修改文件,然后提交修改,然后再切換到需要修改的那個(gè)分支,然后在merge git merge --no-ff -m "merged bug fix 101" issue-101
28、git stash list 可以查看創(chuàng)建的stash
git stash apply stash@{0} 可以恢復(fù)某個(gè)stash,但是不刪除這個(gè)stash信息
git stash pop stash@{0} 可以恢復(fù)并刪除某個(gè)stash
29、git branch -D feature-vulcan 當(dāng)feature-vulcan分支作業(yè)完成后,切換回dev分支進(jìn)行合并,打算又不需要這個(gè)分支的功能,則需要用到這個(gè)命令執(zhí)行快速刪除。
30、查看遠(yuǎn)程庫(kù)信息,使用git remote -v;
31、本地新建的分支如果不推送到遠(yuǎn)程,對(duì)其他人就是不可見的;
32、從本地推送分支,使用git push origin branch-name,如果推送失敗,先用git pull抓取遠(yuǎn)程的新提交;
33、在本地創(chuàng)建和遠(yuǎn)程分支對(duì)應(yīng)的分支,使用git checkout -b branch-name origin/branch-name,本地和遠(yuǎn)程分支的名稱最好一致;
34、建立本地分支和遠(yuǎn)程分支的關(guān)聯(lián),使用git branch --set-upstream branch-name origin/branch-name;
35、從遠(yuǎn)程抓取分支,使用git pull,如果有沖突,要先處理沖突。
git相關(guān)概念及操作
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- x.500 作用: 是ITU-T關(guān)于目錄服務(wù)的一系列規(guī)范、協(xié)議,用于解決國(guó)際電話、電報(bào)互聯(lián)互通、郵件發(fā)送時(shí)的人員查...
- 理解git的基本概念對(duì)git的使用很有幫助 一、git與其他版本工具的區(qū)別 1.主要區(qū)別在于對(duì)待數(shù)據(jù)的方法上。傳統(tǒng)...
- 愛是人間的春風(fēng),愛上溫暖的源泉。如何才能得到別人 的愛呢?生活告訴我,是以愛博得愛。 自從我走上教師的崗位,我就一...