在windows上安裝git
前言:在介紹git前,先說下git的原理
git是分為三部分,一部分是你自己的文件(工作區(qū)),另外一個(gè)是緩存區(qū),最后一個(gè)是本地庫(kù)。當(dāng)你修改了自己的文件后,你會(huì)git add xx將修改保存到緩存區(qū),然后再用commit推送修改到本地庫(kù)中,git push 將本地倉(cāng)庫(kù)修改推送到服務(wù)器上的倉(cāng)庫(kù)中
-
在Windows上使用Git,可以從Git官網(wǎng)直接下載安裝程序
-
安裝完成后,還需要最后一步設(shè)置,在命令行輸入:
git config --global user.name"Your Name"
git config --global user.email"email@example.com"
-
通過
git init命令把這個(gè)目錄變成Git可以管理的倉(cāng)庫(kù)
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
瞬間Git就把倉(cāng)庫(kù)建好了,而且告訴你是一個(gè)空的倉(cāng)庫(kù)(empty Git repository),細(xì)心的讀者可以發(fā)現(xiàn)當(dāng)前目錄下多了一個(gè).git的目錄,這個(gè)目錄是Git來跟蹤管理版本庫(kù)的,沒事千萬不要手動(dòng)修改這個(gè)目錄里面的文件,不然改亂了,就把Git倉(cāng)庫(kù)給破壞了。
如果你沒有看到.git目錄,那是因?yàn)檫@個(gè)目錄默認(rèn)是隱藏的
-
拉取代碼
通過git pull命令拉取代碼
git pull令用于從另一個(gè)存儲(chǔ)庫(kù)或本地分支獲取并集成(整合)。git pull命令的作用是:取回遠(yuǎn)程主機(jī)某個(gè)分支的更新,再與本地的指定分支合并,它的完整格式稍稍有點(diǎn)復(fù)雜
git pull <遠(yuǎn)程主機(jī)名> <遠(yuǎn)程分支名>:<本地分支名>
相當(dāng)于是從遠(yuǎn)程獲取最新版本并merge到本地
-
新增文件
通過git add命令新增文件
git add命令分為三種,分別為git add .,git add -u,git add -A
git add . :他會(huì)監(jiān)控工作區(qū)的狀態(tài)樹,使用它會(huì)把工作時(shí)的所有變化提交到暫存區(qū),包括文件內(nèi)容修改(modified)以及新文件(new),但不包括被刪除的文件。
git add -u :他僅監(jiān)控已經(jīng)被add的文件(即tracked file),他會(huì)將被修改的文件(包括被刪除的文件)提交到暫存區(qū)。add -u 不會(huì)提交新文件(untracked file)。(git add --update的縮寫)
git add -A :是上面兩個(gè)功能的合集(git add --all的縮寫),包括新增,修改,刪除的所有文件
-
提交文件
git commit -m '提交的問題描述'
將緩存區(qū)中的文件推送到本地git倉(cāng)庫(kù)中
-
推送到遠(yuǎn)程主機(jī)
git push <遠(yuǎn)程主機(jī)名> <本地分支名>:<遠(yuǎn)程分支名>
-
文件從暫存區(qū)回退到工作區(qū),版本庫(kù)回退
git reset HEAD filename :回退文件,將文件從暫存區(qū)回退到工作區(qū),也可以使用 git reset filename
git reset HEAD^ :回退版本,一個(gè)^表示一個(gè)版本,可以多個(gè),另外也可以使用 git reset HEAD~n這種形式。
-
查看git狀態(tài),看有哪些文件被修改了,但是還沒有提交
通過命令git status可以看到當(dāng)前版本的狀態(tài),但是看不到具體修改了哪些內(nèi)容,如果想看到具體修改了哪些內(nèi)容,需要通過命令git diff來查看
-
查看提交日志
通過命令git log查看提交日志,加上參數(shù)--pretty=oneline后,每個(gè)提交記錄會(huì)顯示在一行之中
git log --pretty=oneline
-
查看歷史提交命令
通過命令git reflog查看歷史提交命令
-
git checkout -- file丟棄工作區(qū)的修改
命令git checkout -- file的作用就是,把文件file再工作區(qū)的修改全部撤銷,這里有兩種情況,
一種是文件file自修改后還沒有放到緩存區(qū),撤銷修改后就回到和版本庫(kù)一模一樣的狀態(tài);
一種是文件file已經(jīng)添加到緩存區(qū),又作了修改,現(xiàn)在,撤銷修改就回到添加到緩存區(qū)后的狀態(tài);
總之,就是讓這個(gè)文件回到最近一次git commit或git add時(shí)的狀態(tài)。
-
git rm版本庫(kù)中刪除文件
git rm file,并且git commit,這樣,文件就從版本庫(kù)中被刪除了
-
關(guān)于分支的命令
查看分支: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>
-
git stash
修復(fù)bug時(shí),我們會(huì)通過創(chuàng)建新的bug分支進(jìn)行修復(fù),然后合并,最后刪除;
當(dāng)手頭工作沒有完成時(shí),先把工作現(xiàn)場(chǎng)git stash一下,然后去修復(fù)bug,修復(fù)后,再git stash pop,回到工作現(xiàn)場(chǎng)
-
git tag
命令git tag <name>用于新建一個(gè)標(biāo)簽,默認(rèn)為HEAD,也可以指定一個(gè)commit id
git tag -a <tagname> -m "message"可以指定標(biāo)簽信息
git tag -s <tagname> -m "message"可以用PGP簽名標(biāo)簽
命令git tag可以查看所有標(biāo)簽
命令git push origin <tagname>可以推送一個(gè)本地標(biāo)簽
命令git push origin --tags可以推送全部未推送過的本地標(biāo)簽
命令git tag -d <tagname>可以刪除一個(gè)本地標(biāo)簽
命令git push origin :refs/tags/<tagname>可以刪除一個(gè)遠(yuǎn)程標(biāo)簽