工作中使用git遇到的問題總結
背景
從九月中旬實習至今,開發中遇到了許多問題,最讓我頭痛的還是使用git進行協同開發。每次請求合併都戰戰兢兢,因為這個不僅關係到自己,一不小心還可能刪掉別人已經上線的程式碼(沒錯,我幹了這種蠢事)。每思至此,背脊發涼,特此對常用git操作進行一番總結。
備註:本文不講原理性操作,只闡述工作中遇到的問題,並提供解決方案,想要了解git工作原理慎讀
準備
工欲善其事必先利其器,首先我們要將本地倉庫和遠端倉庫關聯起來,分為兩步
第一步:
配置個人資訊
$ git config --global user.name "Buddhas" $ git config --global user.email "[email protected]"
第二步:
配置ssh
在git命令列敲擊 ssh-keygen -t rsa -C "[email protected]",按照提示一步步輸入所需要的資訊,然後會在c:/Users/xxxx_000/.ssh/找到兩個檔案,id_rsa.pub和id_rsa。然後登入github,找到Settings→SSH kyes→Add SSH key,將id_rsa.pub內容複製過來,title自定義,到此我們的準備工作就完成了,下面重點談一下git常用操作和遇到的問題
git常用操作及遇到的問題
由於需要和後臺進行協同開發,避免不了需要共用程式碼,首先新增git源
新增源git remote add origin [email protected]:chenbin/XXX.git
列出源中所有倉庫
git branch -all
拉取別人程式碼
git clone [email protected]:Buddhas/XXX.git
舉個例子,我們有開發分支37131,和測試分支test。
開發完成後提交操作
git add <filename> //提交到暫存區,如果需要全部提交則用.表示 git commit -m "XXX" //把暫存區的所有內容提交到當前分支 git push //將本地分支修改和遠端分支同步
在此過程中我出現過的問題
如果想要撤銷提交操作
git reset 檔名 表示撤銷git add操作 git reset HEAD~1 表示撤銷commit操作,保留更改 git reset --hard HEAD~1 表示撤銷commit操作,撤銷更改
如果不小心在其他分支上寫了程式碼,比如我們的開發分支是37131,而我在test分支上做了修改(沒錯,我又幹過這種蠢事)
git stash //暫存當前內容git checkout 37131 //切換到開發分支
git stash pop //將暫存的程式碼儲存過來
當我們需要合併分支,首先切換到我們的test分支,然後進行合併
git checkout testgit merge 37131
在此過程中我遇到過的問題
如果需要取消合併
git merge --abort
如果發現test分支被無意修改過,想要同步遠端test分支
git fetch -f root test //拉取遠端test分支,但不合並
git reset --hard root/test //修改本地test分支指向
如果說我們需要放棄本地修改,其實有兩種方法可行
git checkout . //同步暫存區的程式碼 或者 git fetch --all //同步遠端倉庫程式碼 git reset --hard root/test
行文至此