git入門垦梆、常用命令理解和項(xiàng)目中g(shù)it實(shí)戰(zhàn)

項(xiàng)目開發(fā)中g(shù)it是非常重要的,它可以有效关摇、高速地處理從很小到非常大的項(xiàng)目版本管理。

資料:

項(xiàng)目開發(fā)常用命令

可以設(shè)置當(dāng)前倉(cāng)庫(kù)的 用戶和郵箱

git config --local user.name 'xxx';

git config --local user.email 'xxx';

設(shè)置全局的倉(cāng)庫(kù)大的用戶名和郵箱

git config --global user.name 'xxx'; 

git config --global user.email 'xxx';

在github提交代碼后貢獻(xiàn)如果沒有被記錄碾阁,有可能就是你全局或者當(dāng)前的git倉(cāng)庫(kù)的用戶名和郵箱不是github的用戶名和郵箱输虱。

如果這個(gè)命名存在也可以直接覆蓋修改,還可以替換git config中已有的郵箱

$  git config --global --replace-all user.email "輸入你的郵箱"
$  git config --global --replace-all user.name "輸入你的用戶名"

保存密碼: 如果沒有設(shè)置ssh 可以通過保存密碼的方式來跳過輸入密碼這個(gè)步驟

git config credential.helper store
  • git stash: https://www.cnblogs.com/zndxall/archive/2018/09/04/9586088.html

  • 本地主分支 : origin/HEAD -> origin/master 表示默認(rèn)分支

  • 查看提交詳細(xì)信息: git show

  • git status :命令用于顯示工作目錄和暫存區(qū)的狀態(tài)。使用此命令能看到那些修改被暫存到了, 哪些沒有, 哪些文件沒有被Git tracked到脂凶。git status不顯示已經(jīng)commit到項(xiàng)目歷史中去的信息宪睹。 一般紅色的沒有被追蹤到,綠色的是已經(jīng)add后的蚕钦, 意思就是被追蹤了

  • 克隆指定分支下的內(nèi)容: clone -b brandName url

  • 參看所有分支: git branch -a 會(huì)列出當(dāng)前庫(kù)所有的分支(本地亭病、遠(yuǎn)程)

  • 切換分支: git checkout branchName 加上 -b 參數(shù)會(huì)新建并切換到該分支 git checkout -b branchName

  • 創(chuàng)建分支:git brahch branchName

  • 刪除分支:git branch --delete branchName

  • 刪除遠(yuǎn)程分支: git push --delete origin branchName

  • 刪除那些遠(yuǎn)程倉(cāng)庫(kù)不存在的分支: git remote prune origin

  • 查看本地分支與遠(yuǎn)程分支的對(duì)應(yīng)關(guān)系: git remote show origin

  • 重命名git本地分支:
    git branch -m old_local_branch_name new_local_branch_name

  • 重命名git遠(yuǎn)程分支:是先刪除遠(yuǎn)程的分支,然后更改本地分支名嘶居,然后將更改后的分支推送到遠(yuǎn)程

通過這個(gè)命令可以看出 本地分支與遠(yuǎn)程分支的對(duì)應(yīng)關(guān)系罪帖,是否與遠(yuǎn)程有對(duì)應(yīng)關(guān)系。
Local branches configured for 'git pull':表示本地分支 從哪個(gè)遠(yuǎn)程分支拉取
Local branches configured for 'git pull':表示本地分支 推送到哪個(gè)遠(yuǎn)程分支上去

git 常用命令理解

git fetch

將某個(gè)遠(yuǎn)程主機(jī)的更新 git fetch <遠(yuǎn)程主機(jī)名> 若要更新所有分支邮屁,命令可以簡(jiǎn)寫為: git fetch

上面命令將某個(gè)遠(yuǎn)程主機(jī)的更新整袁,全部取回本地。默認(rèn)情況下佑吝,git fetch取回所有分支的更新坐昙。如果只想取回特定分支的更新,可以指定分支名,如下所示: git fetch <遠(yuǎn)程主機(jī)名> <分支名>

比如芋忿,取回origin主機(jī)的master分支: git fetch origin master

所取回的更新炸客,在本地主機(jī)上要用遠(yuǎn)程主機(jī)名/分支名的形式讀取。比如origin主機(jī)的master分支戈钢,就可以用origin/master讀取痹仙。

git branch命令的-r選項(xiàng),可以用來查看遠(yuǎn)程分支殉了,-a選項(xiàng)查看所有分支开仰。

$ git branch -r
origin/master

$ git branch -a
* master
  remotes/origin/master

上面命令表示,本地主機(jī)的當(dāng)前分支是master宣渗,遠(yuǎn)程分支是origin/master抖所。取回遠(yuǎn)程主機(jī)的更新以后梨州,可以在它的基礎(chǔ)上痕囱,使用git checkout命令創(chuàng)建一個(gè)新的分支。

git cherry-pick

場(chǎng)景: 如果你的程序已經(jīng)發(fā)布了一個(gè)版本0.1.1, 代碼分支叫release-0.1.1, 現(xiàn)在正在開發(fā)0.1.x, 我們?cè)陂_發(fā)分支進(jìn)行后續(xù)的開發(fā)暴匠,那么有一天產(chǎn)品說, 要把正在開發(fā)的某個(gè)特性(功能)提前上線, 也就是說要把開發(fā)分支上的某些更改移到release-0.1.1的版本上, 那么怎么辦呢?鞍恢。

思考: 我們的目標(biāo)是:需要把這個(gè)需要發(fā)的功能相關(guān)的代碼移植到想relesase-0.1.1分支上面,這里有一種比較非體力的方法,就是把要發(fā)布的內(nèi)容挑出來帮掉,然后移到新的分支(基于relesase-0.1.1拉出來的分支)上去弦悉,然后把新的分支合并到relesase-0.1.1。(不能把開發(fā)分支直接合并到relesase-0.1.1)

推薦解決方式: 使用git cherry-pick cherry-pick會(huì)重演某些commit, 即把某些commit的更改重新執(zhí)行一遍蟆炊』颍或者簡(jiǎn)單理解這里有10次commit提交的內(nèi)容,你可以任意挑選出其中5次commit的內(nèi)容涩搓,然后重新執(zhí)行這5次提交(這就是重演)污秆。

  1. 基于release-2.0分支新建分支release-2.1, 并且到新創(chuàng)建的分支上
    git checkout -b release-2.1 release-2.0
  2. 將dev-3.0分支上的某些commit在release-2.1分支上重演
git cherry-pick dev-3.0分支的某些commit-hash
如:
git cherry-pick  
20c2f506d789bb9f041050dc2c1e954fa3fb6910 
2633961a16b0dda7b767b9264662223a2874dfa9 
5d5929eafd1b03fd4e7b6aa15a6c571fbcb3ceb4  

多個(gè)commit-hash使用空格分割, commit-hash最好按提交時(shí)間先后排列, 即最先提交的commit放在前面.

cherry-pick不僅可以用在不同分支之間, 還可以用在同一個(gè)分支上.
不同分支的用法如上所述. 同一分支用法也是一樣的, 同一分支使用情形:
比如說你在某一個(gè)向某個(gè)分支中添加了一個(gè)功能, 后來處于某種原因把它給刪除了,
然而后來某一天你又要添加上這個(gè)功能了, 這時(shí)候就可以使用cherry-pick把添加那個(gè)功能的commit, 再重演一遍.

常見分支操作 -新建分支

情況1 :

如果遠(yuǎn)程新建了一個(gè)分支,本地沒有該分支昧甘,可以用 git checkout --track origin/branch_name

這時(shí)候本地會(huì)新建一個(gè)分支名叫branch_name良拼,會(huì)自動(dòng)跟蹤(track)遠(yuǎn)程的同名分支branch_name(就可以在這個(gè)本地分支上推拉代碼)

用上面中方法,得到的分支名永遠(yuǎn)和遠(yuǎn)程的分支名一樣充边,如果想新建一個(gè)本地分支不同名字庸推,同時(shí)跟蹤一個(gè)遠(yuǎn)程分支可以利用。
git checkout -b new_branch_name branch_name

這條指令本來是根據(jù)一個(gè)branch_name分支分出一個(gè)本地分支new_branch_name浇冰,但是如果所根據(jù)的分支branch_name是一個(gè)遠(yuǎn)程分支名贬媒,那么本地的分支會(huì)自動(dòng)的track遠(yuǎn)程分支。

注意:一般用git push --set-upstream origin branch_name來在遠(yuǎn)程創(chuàng)建一個(gè)與本地branch_name同名的分支并跟蹤湖饱;利用git checkout --track origin/branch_name來在本地創(chuàng)建一個(gè)與branch_name同名分支跟蹤遠(yuǎn)程分支.

當(dāng)使用git checkout -b new_branch_name origin/branch_name當(dāng)提交的時(shí)候會(huì)報(bào)這個(gè)錯(cuò):

fatal: The upstream branch of your current branch does not match
the name of your current branch.  To push to the upstream branch
on the remote, use

    git push origin HEAD:master

To push to the branch of the same name on the remote, use

    git push origin dev-test

這是由于Gitpush.default的設(shè)置的原因

Gitpush.default可以指定在沒有明確指定遠(yuǎn)程分支的情況下掖蛤,默認(rèn)push的遠(yuǎn)程分支,其取值可以是:

  • nothing - push 操作無(wú)效井厌,除非顯式指定遠(yuǎn)程分支(意思就是 push的時(shí)候 必須指定遠(yuǎn)程的分支)

  • current - push 當(dāng)前分支到遠(yuǎn)程同名分支蚓庭,如果遠(yuǎn)程同名分支不存在則自動(dòng)創(chuàng)建同名分支(central 和 non-central workflows都適用)

  • upstream - push 當(dāng)前分支到它的upstream分支上(通常用于central workflow

  • simple - simpleupstream是相似的(通常用于central workflow),只有一點(diǎn)不同仅仆,simple必須保證本地分支和它的遠(yuǎn)程upstream分支同名器赞,否則會(huì)拒絕push操作

  • matching - push所有本地和遠(yuǎn)程兩端都存在的同名分支

  • central / non-central workflowsGit的兩種常見工作流場(chǎng)景:

    1. central workflows - 集中式工作流,一個(gè)分支的pushpull都是同一個(gè)遠(yuǎn)程倉(cāng)庫(kù)
    2. non-central workflows - 非集中式工作流墓拜,一個(gè)分支的pushpull可能分別都有不同的遠(yuǎn)程倉(cāng)庫(kù)

在Git 2.0之前港柜,push.default的內(nèi)建值被設(shè)為'matching',2.0之后則被更改為了'simple'咳榜。

通過git remote show origin可以看到每個(gè)分支的具體信息: (例如 git checkout -b local origin/daily/dev)

 Local branches configured for 'git pull':
     local merges with remote /daily/dev
     master       merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)

由于git checkout -b local origin/daily/dev會(huì)自動(dòng)創(chuàng)建遠(yuǎn)程分支/daily/dev 和本地分支local的跟蹤關(guān)系夏醉。
其中Local branches configured for 'git pull':下的就是upstream跟蹤分支。

可以看出涌韩,遠(yuǎn)程分支/daily/dev和本地分支local建立了git pull的關(guān)系畔柔,但是沒有建立git push的關(guān)系。此時(shí)如果強(qiáng)行push臣樱,不會(huì)成功靶擦,會(huì)出現(xiàn)如下提示:

fatal: The current branch new has no upstream branch.  
To push the current branch and set the remote as upstream, use
    git push --set-upstream origin develop

這種提示的處理方式下面會(huì)給出具體的處理方法腮考。

情況2 :

本地新建分支,然后推送到遠(yuǎn)程玄捕,可以使用git branch branch_name或者git checkout -b branch_name(新建并切換到該分支) 新建一個(gè)本地分支,然后修改了代碼 執(zhí)行add 踩蔚、commit、最后執(zhí)行push操作 發(fā)現(xiàn)會(huì)發(fā)現(xiàn)報(bào)錯(cuò):

# git push 
fatal: The current branch make-scripts-executable has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin branch_name

這是因?yàn)镚it不知道你要提交到哪個(gè)分支上去, 所以需要你指定提交的分支, 直接從本地檢出的新分支枚粘,第一次push馅闽,遠(yuǎn)程倉(cāng)庫(kù)還沒有與之建立tracing關(guān)系的分支,所以需要設(shè)置upstream馍迄,這個(gè)設(shè)置一次之后捞蛋,后面再push的時(shí)候就不用設(shè)置了。

如果不想這樣寫則需要指定提交到遠(yuǎn)程的分支: git push origin branch_name柬姚。

git push origin branch_name推向制定的分支拟杉,最強(qiáng)暴的方法。但是每次提交都要指定量承,太麻煩了(而且還容易出錯(cuò))搬设。所以需要與遠(yuǎn)程分支關(guān)聯(lián)。

所以使用git push --set-upstream origin branch_name遠(yuǎn)程分支關(guān)聯(lián)撕捍。 這樣就不用每次push的時(shí)候都指定分支了拿穴,都會(huì)提交到關(guān)聯(lián)的遠(yuǎn)程分支上去。(branch_name是遠(yuǎn)程分支名)

常見分支操作 合并分支

git merge命令用于將兩個(gè)或兩個(gè)以上的開發(fā)歷史加入(合并)一起忧风。 將 merge 后面的分支合并到當(dāng)前分支默色。

  • 將分支dev合并到當(dāng)前分支中,自動(dòng)進(jìn)行新的提交:
git merge dev
  • 合并分支 branch1 和 branch2 在當(dāng)前分支的頂部狮腿,使它們合并:
git merge branch1 branch2
  • 合并branch1分支到當(dāng)前分支腿宰,使用ours合并策略:
git merge -s ours branch1
  • 將分支branch1合并到當(dāng)前分支中,但不要自動(dòng)進(jìn)行新的提交:
git merge --no-commit branch1

Git checkout [文件名]缘厢、git reset HEAD [文件名] 吃度、git reset [哈希值] 的應(yīng)用場(chǎng)景。

git reset HEAD [文件名]
gitAdd.png

通過git reset [文件名] 可以將暫存區(qū)的文件放出來 贴硫, 但是我們的工作區(qū)的內(nèi)容沒有改變椿每。只是相當(dāng)于 對(duì)[文件名] 不執(zhí)行 git add 操作 。 類似于后退操作英遭。

git checkout [文件名]

工作區(qū)回退:如果比對(duì)后间护,發(fā)現(xiàn)這次改動(dòng)不是我們想要的,那么我們可以回退到未修改之前挖诸,(在vsCode等編輯器里面汁尺,可以放棄修改)

git checkout readme.txt
git checkout .
git checkout -- readme.txt  // 以防判斷成分支
gitChange.png

下面這串?dāng)?shù)字是我們新加的, 通過git status 我們可以看到readme.md文件做了修改

gitChange1.png

使用 git checkout [文件名] 可以將它變成修改前的是 ,意思就是放棄本次修改税灌。 執(zhí)行改命令后均函,發(fā)現(xiàn)添加的數(shù)字不見了
git status 顯示文件沒有修改。

gitChange2.png

如果我們已經(jīng)添加到了暫存區(qū)(意思已經(jīng)執(zhí)行 git add 操作了)菱涤,如果要退回到修改前苞也,我們應(yīng)該怎么處理呢。

直接通過git checkout [文件名]是不能將它回退到未修改的樣子的粘秆∪绯伲可以先采用git reset HEAD [文件名] 將它移除暫存區(qū)(意思就是回退在沒有執(zhí)行git add 的時(shí)候), 然后通過git checkout [文件名] 將改文件退回到修改前。

git reset [哈希值]

上面的操作都是在暫存區(qū) 攻走,還沒有使用git commit 提交到本地廠庫(kù) 殷勘。如果已經(jīng)提交到本地廠庫(kù)了又要如何操作呢。

將readme.md文件添加一段文字, 然后提交到本地的廠庫(kù)昔搂。

gitChange3.png

通過git reflog可以看到一共有兩個(gè)版本 當(dāng)前的版本是HEAD -> master

gitReflog.png

然后 在修改文件readme.md玲销,然后在提交到本地廠庫(kù)。

gitChange4.png

但是這個(gè)時(shí)候的需求是 回到?jīng)]有添加第二次提交文字的時(shí)候摘符,意思就是要回到上一個(gè)版本贤斜。

可以通過使用 git reset 的命令來完成」淇悖基本的流程是執(zhí)行:git reset --mixed HEAD^意思就是回退到上一個(gè)版本瘩绒。

gitReset1.png

可以發(fā)現(xiàn)命令成功了,是不是頁(yè)面也變成了原來的樣子呢带族,然后并沒有改變锁荔。那這個(gè)命令具體做了什么呢?

我們通過看readme.mdgit status看可以看到

gitChange5.png

gitChange6.png

是將它回退沒有執(zhí)行git add命令之前了,相當(dāng)于你修改了代碼 但是沒有提交的那個(gè)狀態(tài)蝙砌。然后可以通過git checkout readme.md 命令將它變回未修改的狀態(tài)阳堕。

但是如果我們要從現(xiàn)在沒有添加那個(gè)文字的這個(gè)版本 變到添加了文字的版本 要如何操作呢。

通過git reflog 可以看出當(dāng)前的版本是fd8258e

gitReset2.png

我們使用 git reset --hard HEAD^, 發(fā)現(xiàn)這里readme.md文件直接被修改了择克。

gitReset3.png

同時(shí)版本并滅有從fd8258e 變到 a5da32e 而是變到了df0abb9嘱丢,這里的原因是git的提交是一條時(shí)間線,在這條時(shí)間線上祠饺,fd82582的上一次提交就是df0abb9

gitReset4.png

如果要變成指定的版本應(yīng)該采用命令: git reset [哈希值]越驻; --mixed 為默認(rèn)參數(shù)

gitReset5.png

顯示readme.md被修改了道偷,通過左右兩邊的比較可以發(fā)現(xiàn)缀旁。 左邊相當(dāng)于原文件,而右邊相當(dāng)于對(duì)原文件的修改勺鸦〔⑽。可以通過 git checkout readme.md放棄本次修改。

githash.png

執(zhí)行git checkout readme.md頁(yè)面變成了修改之前的换途,同時(shí)也可以使用git statsu看出沒有做出修改懊渡。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末刽射,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子剃执,更是在濱河造成了極大的恐慌誓禁,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,002評(píng)論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肾档,死亡現(xiàn)場(chǎng)離奇詭異摹恰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)怒见,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門俗慈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人遣耍,你說我怎么就攤上這事闺阱。” “怎么了舵变?”我有些...
    開封第一講書人閱讀 169,787評(píng)論 0 365
  • 文/不壞的土叔 我叫張陵馏颂,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我棋傍,道長(zhǎng)救拉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,237評(píng)論 1 300
  • 正文 為了忘掉前任瘫拣,我火速辦了婚禮亿絮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘麸拄。我一直安慰自己派昧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,237評(píng)論 6 398
  • 文/花漫 我一把揭開白布拢切。 她就那樣靜靜地躺著蒂萎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪淮椰。 梳的紋絲不亂的頭發(fā)上五慈,一...
    開封第一講書人閱讀 52,821評(píng)論 1 314
  • 那天,我揣著相機(jī)與錄音主穗,去河邊找鬼泻拦。 笑死,一個(gè)胖子當(dāng)著我的面吹牛忽媒,可吹牛的內(nèi)容都是我干的争拐。 我是一名探鬼主播,決...
    沈念sama閱讀 41,236評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼晦雨,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼架曹!你這毒婦竟也來了隘冲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,196評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤绑雄,失蹤者是張志新(化名)和其女友劉穎展辞,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绳慎,經(jīng)...
    沈念sama閱讀 46,716評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,794評(píng)論 3 343
  • 正文 我和宋清朗相戀三年漠烧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了杏愤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,928評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡已脓,死狀恐怖珊楼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情度液,我是刑警寧澤厕宗,帶...
    沈念sama閱讀 36,583評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站堕担,受9級(jí)特大地震影響已慢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜霹购,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,264評(píng)論 3 336
  • 文/蒙蒙 一佑惠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧齐疙,春花似錦膜楷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至轿塔,卻和暖如春特愿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背勾缭。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工洽议, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人漫拭。 一個(gè)月前我還...
    沈念sama閱讀 49,378評(píng)論 3 379
  • 正文 我出身青樓亚兄,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親采驻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子审胚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,937評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 開始: 1) 遠(yuǎn)程倉(cāng)庫(kù)相關(guān)命令 檢出倉(cāng)庫(kù):$ git clone git://github.com/jquery/...
    草根老張閱讀 849評(píng)論 0 50
  • 查看匈勋、添加、提交膳叨、刪除洽洁、找回,重置修改文件 git help # 顯示command的help git sho...
    Swiftor閱讀 2,124評(píng)論 0 2
  • 本文針對(duì)初級(jí)用戶菲嘴,從最簡(jiǎn)單的講起饿自,但是需要讀者對(duì)Git的基本用法有所了解。 Git是開源的分布式版本控制系統(tǒng)龄坪,...
    Sachie閱讀 1,153評(píng)論 0 2
  • Add & Commit git init 初始化一個(gè) Git 倉(cāng)庫(kù)(repository)昭雌,即把當(dāng)前所在目錄變成...
    冬絮閱讀 4,854評(píng)論 0 9
  • 三大區(qū)域: 工作區(qū) → 緩存區(qū) → 本地倉(cāng)庫(kù) 一 刨疼、 使用 git config 命令進(jìn)行配置: git ...
    Manchangdx閱讀 2,846評(píng)論 0 2