安裝git
sudo apt-get install git
git config命令的--global參數(shù),用了這個參數(shù),表示你這臺機(jī)器上所有的Git倉庫都會使用這個配置,當(dāng)然也可以對某個倉庫指定不同的用戶名和Email地址
git config --global user.name "Your name"
git config --global user.email "email@XX.com"
創(chuàng)建版本庫repository
首先找一個地方,創(chuàng)建一個空目錄,然后使用git init 命令
git init
將文件放到建好的倉庫目錄下使用如下命令
用add將文件添加到倉庫
git add filename
用commit告訴git, 把文件提交到倉庫
git commit -m "input something "
git commit命令執(zhí)行成功后會告訴你,文件被改動的情況。commit可以一次提交很多文件
查看倉庫歷史
git status命令可以讓我們時刻掌握倉庫當(dāng)前的狀態(tài)
git status
git diff filename 可以查看該文件時如何被修改的
版本回退
用git log 命令查看歷史記錄
git reset --hard +版本號
其中**HEAD表示當(dāng)前版本,HEAD^表示上一個版本,HEAD^^表示上上一個版本 也可寫成HEAD~100上一百個版本。版本號不用全寫,寫前幾位就行。git會自動幫你找到
用git reflog 可以查看你每一次的操作記錄
撤銷修改
使用
git checkout --xxx.txt
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作區(qū)的修改全部撤銷,這里有兩種情況:
一種是readme.txt自修改后還沒有被放到暫存區(qū),現(xiàn)在,撤銷修改就回到和版本庫一模一樣的狀態(tài);
一種是readme.txt已經(jīng)添加到暫存區(qū)后,又作了修改,現(xiàn)在,撤銷修改就回到添加到暫存區(qū)后的狀態(tài)。
總之,就是讓這個文件回到最近一次git commit或git add時的狀態(tài)
使用git reset HEAD +filename可以把暫存區(qū)的修改撤銷掉,重新放回工作區(qū)。git reset命令既可以回退版本,也可以把暫存區(qū)的修改撤銷掉
刪除文件
** 使用git rm filename**刪除文件
若刪錯了,可用 git checkout -- filename進(jìn)行恢復(fù)
查看、切換、創(chuàng)建和刪除分支
git br -r # 查看遠(yuǎn)程分支
git br new_branch> # 創(chuàng)建新的分支
git br -v # 查看各個分支最后提交信息
git br --merged # 查看已經(jīng)被合并到當(dāng)前分支的分支
git br --no-merged # 查看尚未被合并到當(dāng)前分支的分支
git co branch> # 切換到某個分支
git co -b new_branch> # 創(chuàng)建新的分支,并且切換過去
git co -b new_branch> branch> # 基于branch創(chuàng)建新的new_branch
git co $id # 把某次歷史提交記錄checkout出來,但無分支信息,切換到其他分支會自動刪除
git co $id -b new_branch> # 把某次歷史提交記錄checkout出來,創(chuàng)建成一個分支
git br -d branch> # 刪除某個分支
git br -D branch> # 強(qiáng)制刪除某個分支 (未被合并的分支被刪除的時候需要強(qiáng)制)
分支合并和rebase
git merge branch> # 將branch分支合并到當(dāng)前分支
git merge origin/master --no-ff # 不要Fast-Foward合并,這樣可以生成merge提交
git rebase master branch> # 將master rebase到branch,相當(dāng)于:
git co branch> git rebase master git co master git merge branch>
Git暫存管理
git stash # 暫存
git stash list # 列所有stash
git stash apply # 恢復(fù)暫存的內(nèi)容
git stash drop # 刪除暫存區(qū)
遠(yuǎn)程倉庫
創(chuàng)建SSH key
ssh-keygen -t rsa -C "email@xx.com"
如果一切順利的話,可以在用戶主目錄里找到.ssh目錄,里面有id_rsa和id_rsa.pub兩個文件,這兩個就是SSH Key的秘鑰對,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人
登陸GitHub,打開“Account settings”,“SSH Keys”頁面:
然后,點(diǎn)“Add SSH Key”,填上任意Title,在Key文本框里粘貼id_rsa.pub文件的內(nèi)容
將本地倉庫推送到GitHub倉庫
git remote add origin git@github.com:pastqing/wangdao.git
git push -u origin mastercd
由于遠(yuǎn)程庫是空的,我們第一次推送master分支時,加上了-u參數(shù),Git不但會把本地的master分支內(nèi)容推送的遠(yuǎn)程新的master分支,還會把本地的master分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來,在以后的推送或者拉取時就可以簡化命令
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改
從遠(yuǎn)程倉庫克隆
git clone git@github.com:pastqing/wangdao.git
查看提交記錄
git log
git log file> # 查看該文件每次提交記錄
git log -p file> # 查看每次詳細(xì)修改內(nèi)容的diff
git log -p -2 # 查看最近兩次詳細(xì)修改內(nèi)容的diff
git log --stat #查看提交統(tǒng)計信息