1. 程式人生 > >GIT 常用指令

GIT 常用指令

git 操作

宣告使用者 git config –global user.name “Your Name” git config –global user.email “[email protected]” 初始化本地倉庫 git init (把修改過的工作區的文件提交到暫存區) git add (把暫存區的未提交的文件提交到(主幹分支)) git commit -m “xxxx” . 檢視當前git狀態 git status 檢視Git 歷史記錄 git log git log –pretty=oneline 回退版本 git reset –hard 版本id 顯示所有的歷史版本 git reflog git reset –hard 版本id 撤銷修改 撤銷工作區修改 git checkout –檔名 撤銷暫存區的修改 git reset head 檔名 git checkout –檔名 如果新增到版本庫,只能做版本回退 版本庫的刪除操作 rm 檔名 | 目錄名 git commit -m “刪除 ” 檔名 取消刪除 git checkout –檔名 版本庫的分支 建立分支 git checkout -b dev 切換分支 git checkout master 合併分支 首先切換到分支master git checkout master git merge dev 刪除分支 git branch -d dev 解決衝突conflict 當多個人共同修改某一樣, 一個人提交了之後,另一個人提交的時候就會出現錯誤 git status 當我們在主分支上執行 git merge dev 的時候 其實已經合併了, 我們發現出現了conflict的時候 我們只需要在主分支上修改衝突的文件內容就可以了, vim 衝突檔案 進行修改 然後 add commit -m “” . 遠端倉庫 首先建立github 賬戶 賬號:110 密碼:sys 然後新增 new repository 一個倉庫 注意 取消勾選不初始化倉庫 initialize this repository with a README 新增忽略 add .gittignore:java 建立好了之後在 clone or down 上覆制下來自己的地址 http 或者是 ssh(可以免密推送)

https://github.com/dragon-123/repositorystart.git [email protected]:dragon-123/repositorystart.git 將本地git 新增遠端倉庫 本地 遠端倉庫 新增 倉庫名(origin) 地址 git remote add origin https://github.com/dragon-123/repositorystart.git 將本地 master分支推向遠端倉庫 git push -u origin master (會讓輸入github密碼) dragon-123 syso 刪除本地繫結的遠端倉庫地址 git remote remove origin 然後新增就行了 擋下來github上的程式碼 進入到需要存放的位置 git clone
https://github.com/dragon-123/repositorystart.git
當然我們可以用ssh 的 首先清除本地遠端倉庫 git remote remove origin git remote add origin [email protected]:dragon-123/repositorystart.git 此時我們不能 git push -u origin master 然後我們需要授權 使用ssh方法免密登入倉庫 進入到需要存放公私鑰的地方 執行下面程式碼 ssh-keygen -t rsa -C “[email protected]
” 然後在 Administrator檔案(登入使用者名稱)找到 .ssh 把 id_rsa.pub 中的內容新增到 github 上面的ssh公鑰上 最後執行的時候就可以免密登入了。 git push -u origin master | git push 本地和遠端倉庫衝突 git pull 往本地倉庫下載遠端倉庫中的內容 每次執行 push之前,先把遠端倉庫中的內容pull 下來 如果出現衝突 就會出現 (master|MERGING) 我們可以add衝突的檔案,然後進而去 add commit 然後 git push 把自己的分支提交上去 在本次建立一個新的分支, 然後 git push origin dev 如果可以合併了 我們可以本地切換到主分支 git checkout master git merge dev 然後 git push 就可以了 刪除本地分支 git branch -d dev 刪除遠端分支 git push -d origin dev git idea 整合 VCS→Enable version … 首先我們需要配置 setting 中的 terminal 把 shell path 路徑指向安裝git的bin 目錄下的sh.exe 如: D:\Git\bin\sh.exe 接下來新增一個外掛ignore 重新啟動idea 然後我們在專案中右鍵 new 一個 ignore 檔案 選擇git的,然後勾選java型別的,還有複選框idea中 帶的需要忽略的檔案字尾 把專案作為一個版本庫初始化 新增本地對映 先pull,因為兩個倉庫不同,發現refusing to merge unrelated histories,無法pull 因為他們是兩個不同的專案,要把兩個不同的專案合併,git需要新增一句程式碼,在git pull, 這句程式碼是在git 2.9.2版本發生的,最新的版本需要新增–allow-unrelated-histories git pull origin master –allow-unrelated-histories git push -u origin master git pull origin master –allow-unrelated-histories 首先 git pull git log –pretty=oneline git reset –hard 想要回退的版本 如果也想讓遠端倉庫回退, 首先 git push 如果出現 To gitee.com:dragon-123/ .git 說明 當前庫和版本庫不一致 那麼如果想讓當前庫和遠端版本庫一致 執行: git push -u origin master 強制更新 如果想要變回來則執行 git reflog –pretty=oneline git reset –hard 版本號 如果想讓遠端倉庫跟著變化,則 git push -f origin master 或者 git push -u origin master 儲存當前工作狀態建立新的工作分支 假設你在dev分支上工作 有bug需要改 首先 git stash 儲存工作狀態 然後在需要改bug的分支上進行 切換到對應的分支 git checkout master 建立一個臨時的分支 git checkout -b issue-101 在臨時分支上修改完成後到主分支合併 git checkout master git merge issue-101 -m “merged bug fix 101” git branch -d issue-101 (或者: git merge –no-ff -m “merged bug fix 101” issue-101) 回到之前的分支 git checkout dev 檢視工作現場 git stash list (可以用 git stash apply 恢復工作狀態 git stash drop 刪除工作狀態 恢復 也可以 git stash pop 恢復的同時 把 stash內容也刪除 ) 分支的應用 檢視分支合併情況 git log –graph –pretty=oneline –abbrev-commit 多人協作 git remote 檢視遠端庫的資訊 git remote -v 顯示更詳細的資訊 推送分支 git push origin master git push origin dev master 分支是主分支,因此要時刻與遠端同步; dev 分支是開發分支,團隊所有成員都需要在上面工作,所以也需要與遠端同步; bug 分支只用於在本地修復bug,就沒必要推到遠端了,除非老闆要看看你每週到底修復了幾個bug; feature 分支是否推到遠端,取決於你是否和你的小夥伴合作在上面開發。 抓取分支 git clone [email protected]:xdfadsaf/lsdfasdf.git git branch 檢視分支 git checkout -b dev origin/dev 建立遠端origin的 dev 分支到本地 推送到遠端dev git push origin dev 自己也要在dev上操作 首先我們為了避免衝突先要 pull 下來 我們首先要指定 本地的dev分支與遠端origin/dev分支的連線 git branch –set-upstream dev origin/dev 然後 pull 下來 如果有衝突 解決衝突後 git push origin dev (我們首先先 git push origin dev) 推送下,如果衝突 git pull 解決好衝突後 推送 git push origin dev git pull提示“no tracking information”, 則說明本地分支和遠端分支的連結關係沒有建立,用命令 git branch –set-upstream branch-name origin/branch-name。 總結: git通常都是在dev 上工作,我們平時合併的時候也是在dev 上合併 git merge –no-ff -m “merged bug fix 101” issue-101 –no-ff 意思是可以看到合併的狀態