1,安裝完成后,還需最后一步這是,在命令中輸入
git config –global user.name? “username”
git config –global user.email? “email”
2,打開需要管理的文件夾
git init?
就可以把這個(gè)目錄變成git可以管理的倉庫了,目錄下生成? .git目錄
3,把一個(gè)文件放在git倉庫里面
git add readme.txt
git commit –m “worte a readme file”
4,查看歷史日志
git log
5,返回上一個(gè)版本
git reset --hard HEAD^
6,回到指定的版本
git reset --hard 1094a
7,用來記錄你的每一次命令
git reglog
這樣你就可以穿梭其中的任意的版本了
8,提交后,用以下命令可以查看工作區(qū)和版本庫里面最新版本的區(qū)別
git diff HEAD -- readme.txt
9,文件必須放在暫存區(qū) 才能提交到版本庫里面
10,你可以發(fā)現(xiàn),Git會(huì)告訴你,git checkout -- file可以丟棄工作區(qū)的修改:
git checkout -- readme.txt
11,如果你不想提交的文件在緩存區(qū),可以撤銷到工作區(qū)
git reset HEAD readme.txt
然后在丟棄工作區(qū)的修改
git checkout -- readme.txt
12,刪除文件
rm a.txt
使用? git status 知道你刪除了a.txt
如果你確定刪除a.txt
git rm a.txt
git commit -m "remove a.txt"
這兩行命令
另一種情況是刪錯(cuò)了,因?yàn)榘姹編炖镞€有呢,所以可以很輕松地把誤刪的文件恢復(fù)到最新版本:
git checkout -- test.txt
(只適用還沒有做上面兩行命令)
13,git status 可以查看你做了什么操作
14,管理庫 GitHub
ssh-keygen -t rsa -C "youremail@example.com"
登陸GitHub,打開“Account settings”,“SSH Keys”頁面:
點(diǎn)“Add SSH Key”,填上任意Title,在Key文本框里粘貼id_rsa.pub文件的內(nèi)容:
點(diǎn)“Add Key”,你就應(yīng)該看到已經(jīng)添加的Key:
15,上傳文件到github
git remote add origin https://github.com/tianpj/git.git
git push -u origin master
16,現(xiàn)在本地提交就可以使用
git push origin master
17,要關(guān)聯(lián)一個(gè)遠(yuǎn)程庫,使用命令git remote add origin git@server-name:path/repo-name.git;
關(guān)聯(lián)后,使用命令git push -u origin master第一次推送master分支的所有內(nèi)容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
分布式版本系統(tǒng)的最大好處之一是在本地工作完全不需要考慮遠(yuǎn)程庫的存在,也就是有沒有聯(lián)網(wǎng)都可以正常工作,
而SVN在沒有聯(lián)網(wǎng)的時(shí)候是拒絕干活的!當(dāng)有網(wǎng)絡(luò)的時(shí)候,再把本地提交推送一下就完成了同步,真是太方便了!
18,下載一個(gè)遠(yuǎn)程庫(下載GitHub上的內(nèi)容到本地)
git clone git@github.com:michaelliao/gitskills.git
19,分支管理
查看分支:git branch
創(chuàng)建分支:git branch <name>
切換分支:git checkout <name>
創(chuàng)建+切換分支:git checkout -b <name>
合并某分支到當(dāng)前分支:git merge <name>
刪除分支:git branch -d <name>
20,當(dāng)Git無法自動(dòng)合并分支時(shí),就必須首先解決沖突。解決沖突后,再提交,合并完成。
解決沖突就是把Git合并失敗的文件手動(dòng)編輯為我們希望的內(nèi)容,再提交。
用git log --graph命令可以看到分支合并圖。
21,分支管理策略
Git分支十分強(qiáng)大,在團(tuán)隊(duì)開發(fā)中應(yīng)該充分應(yīng)用。
合并分支時(shí),加上--no-ff參數(shù)就可以用普通模式合并,合并后的歷史有分支,能看出來曾經(jīng)做過合并,
而fast forward合并就看不出來曾經(jīng)做過合并。
git merge --no-ff -m "merge with no-ff" dev
git log(查看歷史合并分支)
22,bug分支管理只使用與在其他分支工作,然后要修復(fù)bug先保存工作區(qū)文件
當(dāng)你接到一個(gè)修復(fù)一個(gè)代號(hào)101的bug的任務(wù)時(shí),很自然地,你想創(chuàng)建一個(gè)分支issue-101來修復(fù)它,
但是,等等,當(dāng)前正在dev上進(jìn)行的工作還沒有提交:
可以把當(dāng)前工作現(xiàn)場“儲(chǔ)藏”起來,等以后恢復(fù)現(xiàn)場后繼續(xù)工作:
(1)保存當(dāng)前分支的工作區(qū)文件? git stash
(2)創(chuàng)建新的分支來修復(fù)bug
確定在那個(gè)分支上修復(fù)就在切換到那個(gè)分支上(例如在master分支上修復(fù)bug)
先切換分支(git checkouot master)
在創(chuàng)建新的分支并切換(git checkouot -b isbug-01)
(3)修復(fù)bug然后提交
git add readme.txt
git commit -m "修復(fù)bug"
(4)修復(fù)完成切換master分支,并合并分支,最后刪除分支
git checkouot master(切換分支)
git merge --no-ff -m "修復(fù)bug" isbug-01 (合并分支)
git branch -d isbug-01 (刪除分支
(5)回到dev分支繼續(xù)工作
git checkouot dev
(但是工作區(qū)那么干凈怎么辦???)
(用git stash list命令看看)
(6)恢復(fù)工作區(qū)的文件
一是用git stash apply恢復(fù),但是恢復(fù)后,stash內(nèi)容并不刪除,你需要用git stash drop來刪除;
另一種方式是用git stash pop,恢復(fù)的同時(shí)把stash內(nèi)容也刪了:
總結(jié):先把工作現(xiàn)場git stash一下,然后去修復(fù)bug,修復(fù)后,再git stash pop,回到工作現(xiàn)場。
23,開發(fā)一個(gè)新feature,最好新建一個(gè)分支;
如果要丟棄一個(gè)沒有被合并過的分支,可以通過git branch -D <name>強(qiáng)行刪除。
如果有用到了請(qǐng)點(diǎn)個(gè)贊
