1. 程式人生 > >工作中使用git遇到的問題總結

工作中使用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

行文至此