GIT常見問題

Take nothing for granted. Know that the harder you work, the luckier you'll get. — Ivanka Trump
沒有事情是理所當(dāng)然,要知道越努力越幸運(yùn)。 — 伊凡卡·川普

基礎(chǔ)命令

  1. 初始化一個(gè)git工程
    git init: 在本地已存在的工程目錄下打開git base,輸入git init會(huì)在該目錄下創(chuàng)建.git隱藏目錄(該目錄保存一些基本配置)。
    git clone 遠(yuǎn)程倉(cāng)庫(kù)地址:上面是直接在本地創(chuàng)建一個(gè)新的工程,而該命令是將遠(yuǎn)程倉(cāng)庫(kù)克隆到本地,直接將遠(yuǎn)程倉(cāng)庫(kù)克隆到本地。

  2. 添加需要關(guān)注的文件
    這一組命令是添加文件到暫緩區(qū),暫緩區(qū)的文件可以被commit,最后被push到遠(yuǎn)程倉(cāng)庫(kù)。
    git add --all:添加所有變化。
    git add -u:添加被修改(modified)和被刪除(deleted)文件,不包括新文件(new)。
    git add .:添加新文件(new)和被修改(modified)文件,不包括被刪除(deleted)文件。
    git add fileName:添加指定文件到暫緩區(qū)。

  3. 提交變化
    暫緩區(qū)的文件就是你關(guān)注的文件,處于這個(gè)狀態(tài)的文件是能被commit(提交某次修改)的。
    git commit -m 'message':該命令就將你需要修改的文件提交,message是你為這次提交所做的描述信息。

  4. 添加遠(yuǎn)程倉(cāng)庫(kù)
    如果一個(gè)倉(cāng)庫(kù)是通過git init方式創(chuàng)建,是沒有綁定一個(gè)遠(yuǎn)程的倉(cāng)庫(kù),而git clone方式的倉(cāng)庫(kù)為克隆的地址,當(dāng)然你可以為你的git工程添加多個(gè)遠(yuǎn)程倉(cāng)庫(kù)。
    git remote add 倉(cāng)庫(kù)名 對(duì)應(yīng)的倉(cāng)庫(kù)地址:添加遠(yuǎn)程倉(cāng)庫(kù)。

  5. push
    git push <遠(yuǎn)程倉(cāng)庫(kù)> <本地分支> <遠(yuǎn)程分支>:將本地分支推送到遠(yuǎn)程倉(cāng)庫(kù)的遠(yuǎn)程分支,如果遠(yuǎn)程倉(cāng)庫(kù)不存在對(duì)應(yīng)的分支則創(chuàng)建,當(dāng)只有一個(gè)遠(yuǎn)程倉(cāng)庫(kù)時(shí)使用git push能直接將當(dāng)前本地分支推到對(duì)應(yīng)的遠(yuǎn)程分支。

  6. pull
    git pull <遠(yuǎn)程倉(cāng)庫(kù)> <遠(yuǎn)程分支> : <本地分支>:將遠(yuǎn)程倉(cāng)庫(kù)的遠(yuǎn)程分支拉取下來與本地分支進(jìn)行合并,例如git pull origin next:master表示將遠(yuǎn)程倉(cāng)庫(kù)origin的next分支與本地的master分支合并,冒號(hào)及后面的本地分支可以省略即git pull origin next。

  7. 其他命令
    git branch:查看本地所有分支
    git branch --all:查看所有分支包括遠(yuǎn)程倉(cāng)庫(kù)的。
    git branch dev2:新建分支dev2
    git branch -d dev2:刪除分支dev2
    git checkout dev2:切換到制定分支 dev2
    git merge 分支A:將分支A合并到當(dāng)前分支
    git status list:將改動(dòng)緩存到臨時(shí)區(qū)域,并還原到上次commit后的狀態(tài),此時(shí)你可以直接切換分支
    git status pop:將緩存區(qū)域的改動(dòng)重新應(yīng)用到該分支并且移除臨時(shí)緩存

修改提交git賬號(hào)

當(dāng)你在首次用git提交某次修改時(shí)會(huì)讓你輸入對(duì)應(yīng)的name和email,這個(gè)信息會(huì)作為當(dāng)前電腦的全局配置,那么在后續(xù)的提交都是用的這個(gè)賬號(hào)。如果需要修改提交的賬號(hào)呢?
通過命令git config --list查看當(dāng)前的git相關(guān)配置,找到user.name 和user.email,修改即可。

  • 修改全局 (修改全局默認(rèn)值)name和email,通過以下命令:
git config  --global user.name yourName;
git config  --global user.email yourEmail;
  • 只修改當(dāng)前project的name和email,在當(dāng)前project目錄下通過命令:
git config user.name yourName;
git config user.email yourEmail;
  • 上面兩種方法如果不生效,可以修改位于在project下.git目錄下的config添加如下節(jié)點(diǎn)


    增加配置

刪除遠(yuǎn)程倉(cāng)庫(kù)上被忽略的文件

由于種種原因,一些本應(yīng)該被忽略的文件被我們誤操作提交到了遠(yuǎn)程倉(cāng)庫(kù)了,那么我們?cè)撛趺磩h除這些文件呢?

以誤提交了.idea目錄為例,我們可以通過下面的步驟處理:

  1. 首先執(zhí)行命令git rm -r --cached .idea 將.idea從暫緩區(qū)中移除
  2. 編寫正確的.gitignore文件,忽略掉上面移除的文件,然后依次執(zhí)行下面的命令
git add --all
git commit -m '提交信息'
git push

Authentication failed

在代碼提交時(shí)如果出現(xiàn)fatal: Authentication failed for的錯(cuò)誤提示,那么絕大可能性是你的賬號(hào)和密碼錯(cuò)誤,所以可以嘗試下面解決方法:

  1. 執(zhí)行命令 git config --system --unset credential.helper進(jìn)行重置
  2. 進(jìn)行正常的提交操作即可,but現(xiàn)在可能遇到每次push操作都需要你輸入密碼怎么辦呢?
  3. 執(zhí)行命令git config --global credential.helper store將密碼存在本地后,就不用再次輸入了(第一次還是要輸入的,后續(xù)不需要)

Error提交403

賬戶沒有權(quán)限,或者賬戶問題,以及其他問題。

  1. 讓管理員開通對(duì)應(yīng)提交權(quán)限等
  2. 如果是密碼問題,則編輯 /工程目錄/.git/config文件,在url中攜帶用戶名和密碼,例如
    修改前:url = https://xxx.com/xxx/xxxx.git
    修改后:url = https:///yourname:password@xxx.com/xxx/xxxx.git

改錯(cuò)代碼分支

當(dāng)開發(fā)了完功能準(zhǔn)備提交代碼時(shí)發(fā)現(xiàn)修改在了錯(cuò)誤的分支上面,如果在保留所有修改并切換到正確的分支上呢?根據(jù)情況不同有下面兩種方案。

  1. 還未commit的情況
git add  --all     (把所有改動(dòng)暫存)
git stash     (把暫存的文件提交到git的暫存棧)
git checkout (切換到正確的分支)
git stash pop (將暫存棧中的代碼放出來)
  1. 已經(jīng)commit的情況
先切換到改錯(cuò)了的分支
git reset HEAD~1 (將我最近一次提交放回暫存區(qū), 并取消此次提交)
git stash     (把暫存的文件提交到git的暫存棧)
git checkout (切換到正確的分支)
git stash pop (將暫存棧中的代碼放出來)
git push origin 錯(cuò)誤的分支 -f  (把遠(yuǎn)程里面不該提交的移除)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Git常用語法 [TOC] Git簡(jiǎn)介 描述 ? Git(讀音為/g?t/。)是一個(gè)開源的分布式版本控制系統(tǒng),...
    君惜丶閱讀 3,933評(píng)論 0 13
  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉(cāng)庫(kù)完整的鏡像下來。這樣一來,任何一處協(xié)同...
    __silhouette閱讀 16,197評(píng)論 5 147
  • Git 命令行學(xué)習(xí)筆記 Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉(cāng)庫(kù)完整的鏡像下來...
    sunnyghx閱讀 4,152評(píng)論 0 11
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,837評(píng)論 9 163
  • 小溪上面破木橋, 卓瑪背水扭細(xì)腰。 歲歲年年苦中甜, 笑顏如花心自豪。 注1:圖片來自文友小墉正,謝謝文友,謝謝原...
    亮靚_27d5閱讀 740評(píng)論 19 48

友情鏈接更多精彩內(nèi)容