百度上有很多git的教程,在這里我只推薦一個人:廖雪峰的官方網(wǎng)站
1.git安裝
CloverdeiMac $:sudo apt-get install git
- 查看是否安裝git
CloverdeiMac $:git
3.查看git工具的版本號
CloverdeiMac $:git version
4.設(shè)置全局name和email
CloverdeiMac $ git config --global user.name "Your Name"
CloverdeiMac $ git config --global user.email "email@example.com"
5.創(chuàng)建本地版本庫
CloverdeiMac $:mkdir learngit
CloverdeiMac $:cd learngit
CloverdeiMac $:pwd
(pwd命令用于顯示當前目錄,在我的mac上這個倉庫位于/User/Clover/learngit)
6.把目錄變成Git可以管理的倉庫:
CloverdeiMac $:git init
Initialized empty Git repository in /User/Clover/learngit/.git/5.把目錄變成Git可以管理的倉庫:
CloverdeiMac $:git init
Initialized empty Git repository in /User/Clover/learngit/.git/
7.查看隱藏的.git目錄
ls -ah
8.添加文件到git本地倉庫,分兩步:
第一步: git add read.txt 把文件添加到倉庫緩存區(qū)
第二步: git commit -m “wrote a read file” 把文件提交到倉庫
9.查看git倉庫當前的狀態(tài)
$:git status
10.查詢修改的文件內(nèi)容
$ git diff read.txt
11.查看修改的歷史紀錄
git log
$:git log --pretty=oneline 簡潔版
eg:
d1d9c943fc272d74144e1cdb893ce80385e0e23d add GPL
41db32c4936dd5d579a29b3118c6a7628c61c3d5 add distributed
bfb94db7edcb99a217483a5037ba80ca8257e40c wrote a readme file
Git必須知道當前版本是哪個版本,在Git中粉怕,用HEAD表示當前版本筑累,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一樣)果复,上一個版本就是HEAD^材诽,上上一個版本就是HEAD^^
13.回退到上一個版本”add distributed”
$:git reset --hard HEAD^
14.要重返未來颤枪,用git reflog查看命令歷史汗捡,以便確定要回到未來的哪個版本。
git log
git reset --hard d1d9c943 (d1d9c943是append GPL的commit id的前7位,我們不必寫全)
- .git不算工作區(qū),而是Git的版本庫
查看工作區(qū)和版本庫里面最新版本的區(qū)別:
$ git diff HEAD -- readme.txt
16.文件修改丟棄
(1)丟棄工作區(qū)的修改(沒有add之前):
$ git checkout -- readme.txt
(2)丟棄工作區(qū)的修改(已經(jīng)add到緩沖區(qū)):
$ git reset HEAD readme.txt
$ git checkout -- readme.txt
17.刪除文件:
rm test.txt
git status
(yes).確定要刪除文件:
$ git rm test.txt
$ git commit -m "remove test.txt"
(no).刪錯文件了
$ git checkout -- test.txt
18.添加遠程庫
首先你要登錄github, “Create a new repo”按鈕,創(chuàng)建一個新的倉庫:learngit
目前扇住,在GitHub上的這個learngit倉庫還是空的春缕,GitHub告訴我們,可以從這個倉庫克隆出新的倉庫艘蹋,也可以把一個已有的本地倉庫與之關(guān)聯(lián)锄贼,然后,把本地倉庫的內(nèi)容推送到GitHub倉庫女阀。
現(xiàn)在宅荤,我們根據(jù)GitHub的提示,在本地的learngit倉庫下運行命令:
$ git remote add origin git@github.com:xieguangming/learngit.git
xieguangming 是你自己GitHub賬戶名
如果報錯:fatal: remote origin already exists.
$ git remote rm origin
$ git remote add origin git@github.com:xieguangming/learngit.git
origin浸策,這是Git默認的叫法冯键,也可以改成別的,但是origin這個名字一看就知道是遠程庫庸汗。
19.就可以把本地庫的所有內(nèi)容推送到遠程庫上:
$ git push -u origin master
如果報錯:先cd 到本地倉庫目錄: $ git push origin master --force
再 $ git push -u origin master
由于遠程庫是空的惫确,我們第一次推送master分支時,加上了-u參數(shù)蚯舱,Git不但會把本地的master分支內(nèi)容推送的遠程新的master分支改化,還會把本地的master分支和遠程的master分支關(guān)聯(lián)起來,在以后的推送或者拉取時就可以簡化命令晓淀。
推送成功后所袁,可以立刻在GitHub頁面中看到遠程庫的內(nèi)容已經(jīng)和本地一模一樣:
從現(xiàn)在起盏档,只要本地作了提交(add + commit)凶掰,就可以通過命令:
$ git push origin master
把本地master分支的最新修改推送至GitHub,現(xiàn)在蜈亩,你就擁有了真正的分布式版本庫懦窘!
git@github.com:xieguangming/IOTApp.git
20.git 分支
git分支查看分支 : git branch
創(chuàng)建分支 : git branch <name> //git branch dev
切換分支 : git checkout <name> //git branch master
創(chuàng)建+切換分支: git checkout -b <name> //git checkout -b dev
合并某分支到當前分支 git merge <name> //git merge dev 合并分支dev到master
刪除分支 : git branch -d <name> //git branch -d dev
21.配置別名
$ git config --global alias.st status
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
git config --global alias.unstage 'reset HEAD'
git config --global alias.last 'log -1' //配置一個git last,讓其顯示最后一次提交信息
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
22.解決提交代碼沖突
當Git無法自動合并分支時稚配,就必須首先解決沖突畅涂。解決沖突后,再提交道川,合并完成
用帶參數(shù)的git log也可以看到分支的合并情況:
$ git log --graph --pretty=oneline --abbrev-commit
23.提示fatal: remote origin already exists
解決辦法
1午衰、先刪除遠程 Git 倉庫
CloverdeiMac $ git remote rm origin
2、再添加遠程 Git 倉庫
CloverdeiMac git remote add origin https://github.com/xieguangming/runtime.git