您好,登錄后才能下訂單哦!
這篇文章給大家介紹git個人使用命令有哪些,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
快照類操作:add、status、diff、commit、reset、rm、mv
分支類基本操作:branch、checkout、log、stash
分享及更新項(xiàng)目基本操作:pull、push
組合場景操作:
獲取代碼:創(chuàng)建倉庫(UI)、clone
提交代碼:add、status、diff、commit、reset
分享代碼:branch、push
更新代碼:stash、rebase、pull
閱讀代碼:checkout、log
貢獻(xiàn)代碼:fork、merge request
在git bash命令下執(zhí)行g(shù)it clone <git下載地址>,例如:git clone git@git.scm.test.com:zhanyuyi/git_basic_homework.git
(1)第一次提交代碼前,建立.gitignore,在git bash命令下執(zhí)行touch .gitignore即可生成
(2)建立.gitignore后,提交
//添加.gitignore文件到暫存區(qū)
git add .gitgnore
//提交
git commit -m "chore:添加.gitgnore,忽略不需要版本跟蹤的文件"
(3)用文本編輯器如editplus或notepad++輸入需要忽略的文件或文件名,一般可忽略的文件有以下:
##ignore this file##
/target/
.classpath
.project
.settings
##filter databfile、sln file##
*.mdb
*.ldb
*.sln
##class file##
*.com
*.class
*.dll
*.exe
*.o
*.so
# compression file
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
*.via
*.tmp
*.err
# OS generated files #
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
Icon?
ehthumbs.db
Thumbs.db
備注:
/target/ :過濾文件設(shè)置,表示過濾這個文件夾
*.mdb ,*.ldb ,*.sln 表示過濾某種類型的文件
/mtk/do.c ,/mtk/if.h 表示指定過濾某個文件下具體文件
!*.c , !/dir/subdir/ !開頭表示不過濾
*.[oa] 支持通配符:過濾repo中所有以.o或者.a為擴(kuò)展名的文件
該方法保證任何人都提交不了這類文件
本地working directory、staging area暫存區(qū)、local repo三個區(qū)域間切換關(guān)系
提交代碼前需要做好2點(diǎn),第一,一次提交只做一件事;第二,review后才提交。
通常為以下步驟:
//步驟1:查看本地倉庫狀態(tài)git status//步驟2:添加認(rèn)為本次提交應(yīng)包含的文件到暫存區(qū)git add file1 ...//步驟3:review暫存區(qū)內(nèi)容git diff --cached//若review發(fā)現(xiàn)問題,則繼續(xù)修改,然后再add,直到滿意...//步驟4:提交到本地倉庫git commit -m "feat:新增a.java"//步驟5:提交到遠(yuǎn)程倉庫git push
有提交必然有提交日志,提交日志格式:
<type>(<scope>):<subject>//空一行<body>
提交日志規(guī)范如下:
type用于表示commit的類別,允許用下面8個標(biāo)識 ftr/(feat):新功能(feature)無ftr歷史原因的,請使用feat fix:修補(bǔ)bug docs:文檔(documentation) style:格式(不影響代碼運(yùn)行的變動) refactor:重構(gòu)(即不是新增功能,也不是修改bug的代碼變動) test:增加測試 chore:構(gòu)建過程或輔助工具的變動 conflict:解決沖突scope用來標(biāo)識當(dāng)前提交代碼的影響范圍 如果jira單對應(yīng),用(#jira-1)的格式來標(biāo)準(zhǔn)(如果jira單對應(yīng)feat或fix,強(qiáng)制性添加) 如果沒jira單對應(yīng),則按層級描述代碼的影響范圍(eg:view,viewmodel,net,test,model,utils,protocol,presenter) 如果在代碼評審工具Phabricator評審代碼,在scope中加上fix的hash id 如果沒合適的范圍,可以不填subject是commit目的的簡短描述,不超過50個字符。 以動詞開頭 結(jié)尾不加句號(。)或句點(diǎn)(.) body 是對本次commit的詳細(xì)描述,可以分成多行
提交范例:
有jira單例子
ftr(#JIRA-1):完成計(jì)算器加減開發(fā) 計(jì)算器加減法功能完成-添加加減法計(jì)算UI-添加錯誤提示樣式
沒jira單例子
refactor(viewmodel):重構(gòu)add viewmodel部分代碼,提高性能 add計(jì)算邏輯優(yōu)化-整型改為浮點(diǎn)型計(jì)算
合并他人分支時,例如需要把task_TEST-1_zhanyuyi合并到master分支
第一,若不在master分支,使用git checkout master把當(dāng)前分支切換到master分支;
第二,使用git merge task_TEST-1_zhanyuyi后,確定merge成功;
第三,使用git push,把當(dāng)前的master分支推送到遠(yuǎn)程master分支;
第一,創(chuàng)建專屬分支git branch <分支名>,分支命名規(guī)則:<任務(wù)類型>_<任務(wù)序號>_<姓名拼音縮寫>,例如:task_JIRA-1_zhanyuyi
第二,第一次push到遠(yuǎn)程分支(在遠(yuǎn)程倉庫創(chuàng)建分支并綁定到本地同名分支),git push -u origin <分支名稱>
第三,非首次push到遠(yuǎn)程分支,git push
以下為本地常用分支操作
//查看分支git branch//創(chuàng)建分支git branch <分支名>//切換分支git checkout <分支名>//創(chuàng)建+切換分支git checkout -b <新分支名字>//刪除分支git branch -d <需刪除的分支名>
當(dāng)你正在專屬分支開發(fā)時時,臨時需要改BUG或切換分支,可用下面的步驟
//存儲所有目前帶有版本跟蹤的文件,并把文件恢復(fù)回和最新提交一致的內(nèi)容git stash//去做所有想做的事情,例如改BUG,切分支//搞定想做的事情后,準(zhǔn)備繼續(xù)前面的工作,切回原分支git checkout <原工作分支名字>//把第一步存儲的文件全部恢復(fù)回來git stash pop
然而無專屬分支時,確實(shí)需push
//存儲所有目前帶有版本跟蹤的文件,并把文件恢復(fù)回和最新提交一致的內(nèi)容git stash//獲取遠(yuǎn)程倉庫最新代碼,并應(yīng)用到本地git pull//推送遠(yuǎn)程倉庫git push//把第一步存儲的文件全部恢復(fù)回來git stash pop
在上面步驟看到git pul可以獲取遠(yuǎn)程倉庫最新代碼并應(yīng)用到本地,其實(shí)git pull效果等價于git fetch+git mergre<本地當(dāng)前分支名>
副作用:若pull時,本地有代碼沒push,會產(chǎn)生一次merge提交。不推薦在沒有進(jìn)行stash的前提下pull,容易沖突。
副作用解決方法:為了同步公共分支最新內(nèi)容,用git fetch+git rebase origin/<本地當(dāng)前分支名稱>代替git pull
例: git fetch origin git rebase origin/<本地當(dāng)前分支名>
7、閱讀代碼
當(dāng)你正在一個分支,突然想看看別人分支的代碼,可以用以下方法
//先把正在編輯的分支保存起來git stash//查看當(dāng)前分支提交日志git log//查看日志,一行一行閱讀日志git log --online//切換到指定提交后的狀態(tài)git checkout <單次提交的sha-1>//做你想做的事情 。。。//最后,記得把第一步存儲的文件全部恢復(fù)回來
git stash pop
看到這里,<單次提交的sha-1>相信大家疑問在哪里取,其實(shí),在查看日志每個提交開頭,7位,類似b76a6c5,如果切換到前一個提交后,一切正常還想看看前前一個提交如何,就用下面的方式
//查看上一個提交改了什么git log -p <提交的sha-1>
8、貢獻(xiàn)代碼
在網(wǎng)頁fork,然后merge request
關(guān)于git個人使用命令有哪些就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。