1.創(chuàng)建版本庫(kù)
git init命令把這個(gè)目錄變成Git可以管理的倉(cāng)庫(kù):
git add告訴Git侦鹏,把文件添加到倉(cāng)庫(kù):
git commit告訴Git窒盐,把文件提交到倉(cāng)庫(kù):
簡(jiǎn)單解釋一下git commit命令夫否,-m后面輸入的是本次提交的說(shuō)明嗜暴,可以輸入任意內(nèi)容,當(dāng)然最好是有意義的,這樣你就能從歷史記錄里方便地找到改動(dòng)記錄报辱。
2.版本回退
git status告訴你有文件被修改過(guò),用git diff可以查看修改內(nèi)容单山。
git log命令顯示從最近到最遠(yuǎn)的提交日志
$ git reset--hard3628164
HEAD指向的版本就是當(dāng)前版本碍现,因此,Git允許我們?cè)诎姹镜臍v史之間穿梭米奸,使用命令git reset --hard commit_id昼接。
穿梭前,用git log可以查看提交歷史悴晰,以便確定要回退到哪個(gè)版本慢睡。
要重返未來(lái),用git reflog查看命令歷史铡溪,以便確定要回到未來(lái)的哪個(gè)版本漂辐。
3.撤銷修改
場(chǎng)景1:當(dāng)你改亂了工作區(qū)某個(gè)文件的內(nèi)容,想直接丟棄工作區(qū)的修改時(shí)棕硫,用命令git checkout -- file髓涯。
場(chǎng)景2:當(dāng)你不但改亂了工作區(qū)某個(gè)文件的內(nèi)容,還添加到了暫存區(qū)時(shí)哈扮,想丟棄修改纬纪,分兩步,第一步用命令git reset HEAD file滑肉,就回到了場(chǎng)景1育八,第二步按場(chǎng)景1操作。
場(chǎng)景3:已經(jīng)提交了不合適的修改到版本庫(kù)時(shí)赦邻,想要撤銷本次提交,參考版本回退一節(jié)实檀,不過(guò)前提是沒(méi)有推送到遠(yuǎn)程庫(kù)惶洲。
4按声,刪除文件
命令git rm用于刪除一個(gè)文件。如果一個(gè)文件已經(jīng)被提交到版本庫(kù)恬吕,那么你永遠(yuǎn)不用擔(dān)心誤刪签则,但是要小心,你只能恢復(fù)文件到最新版本铐料,你會(huì)丟失最近一次提交后你修改的內(nèi)容渐裂。
5.遠(yuǎn)程倉(cāng)庫(kù)
要關(guān)聯(lián)一個(gè)遠(yuǎn)程庫(kù),使用命令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)程庫(kù)的存在蔬咬,也就是有沒(méi)有聯(lián)網(wǎng)都可以正常工作,而SVN在沒(méi)有聯(lián)網(wǎng)的時(shí)候是拒絕干活的沐寺!當(dāng)有網(wǎng)絡(luò)的時(shí)候林艘,再把本地提交推送一下就完成了同步,真是太方便了混坞!
要克隆一個(gè)倉(cāng)庫(kù)狐援,首先必須知道倉(cāng)庫(kù)的地址,然后使用git clone命令克隆拔第。
Git支持多種協(xié)議咕村,包括https,但通過(guò)ssh支持的原生git協(xié)議速度最快蚊俺。
6.分支管理
查看分支:git branch
創(chuàng)建分支:git branch
切換分支:git checkout
創(chuàng)建+切換分支:git checkout -b
合并某分支到當(dāng)前分支:git merge
刪除分支:git branch -d
查看遠(yuǎn)程庫(kù)信息懈涛,使用git remote -v;
本地新建的分支如果不推送到遠(yuǎn)程泳猬,對(duì)其他人就是不可見的批钠;
從本地推送分支,使用git push origin branch-name得封,如果推送失敗埋心,先用git pull抓取遠(yuǎn)程的新提交;
在本地創(chuàng)建和遠(yuǎn)程分支對(duì)應(yīng)的分支忙上,使用git checkout -b branch-name origin/branch-name拷呆,本地和遠(yuǎn)程分支的名稱最好一致;
建立本地分支和遠(yuǎn)程分支的關(guān)聯(lián),使用git branch --set-upstream branch-name origin/branch-name茬斧;
從遠(yuǎn)程抓取分支腰懂,使用git pull,如果有沖突项秉,要先處理沖突绣溜。