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