Git命令簡單總結

集中式vs分佈式

svn集中式:版本庫是集中存放在中央服務器的,須要聯網才能工做 git

git 分佈式:每一個人的電腦上都是一個完整的版本庫 github

和集中式版本控制系統相比,分佈式版本控制系統的安全性要高不少,由於每一個人電腦裏都有完整的版本庫,某一我的的電腦壞掉了沒關係,隨便從其餘人那裏複製一個就能夠了。而集中式版本控制系統的中央服務器要是出了問題,全部人都無法幹活了。安全

基本命令

初始化倉庫:git init 服務器

把文件添加到倉庫:git add a.txt 添加到暫存區(state)markdown

把文件提交到倉庫:git commit -m '註釋信息' ssh

倉庫狀態:git status分佈式

查看修改內容:git diffsvn

顯示最近到最有遠的提交日誌:git loggit log --pretty=onelinespa

版本回退

  • git reset --hard HEAD^ 回退到上一版本
  • git reset --hard HEAD^ 回退到上上版本
  • git reset --hard HEAD~100 回退到上100個版本
  • git reset --hard 具體版本號 回退到具體版本號

記錄每一次命令 : git reflog版本控制

git checkout -- readme.txt

命令git checkout -- readme.txt意思就是,把readme.txt文件在工做區的修改所有撤銷,這裏有兩種狀況:

一種是readme.txt自修改後尚未被放到暫存區,如今,撤銷修改就回到和版本庫如出一轍的狀態;

一種是readme.txt已經添加到暫存區後,又做了修改,如今,撤銷修改就回到添加到暫存區後的狀態。

總之,就是讓這個文件回到最近一次git commitgit add時的狀態。

刪除

刪除文件後,Git知道你刪除了文件,所以,工做區和版本庫就不一致了,git status命令會馬上告訴你哪些文件被刪除了:

如今你有兩個選擇,一是確實要從版本庫中刪除該文件,那就用命令git rm filename 刪掉,而且git commit

另外一種狀況是刪錯了,由於版本庫裏還有呢,因此能夠很輕鬆地把誤刪的文件恢復到最新版本: git checkout -- filename

遠程倉庫

git config -- global user.name 'GitHub用戶名 '

git config --global user.email '註冊郵箱'

ssh-keygen -t rsa -C 'GitHub的註冊郵箱'

git remote add origin 遠程倉庫地址 :關聯遠程倉庫

git remote rm origin :刪除關聯

git push origin master : 推送 (第一次 加上-u 就會一直關聯這個地址,就不須要再寫origin master)

git pull origin master --allow-unrelated-histories:若是本地倉庫和遠程庫有衝突,好比GitHub上有markdown文件,則加上 --allow-unrelatered..

git clone git@github.com:rottengeek/test.git:克隆遠程庫到本地

分支

git branch 分支名:建立分支

git checkout 分支名:切換分支

git checkout -b 分支名 :建立與切換同時進行

git branch :列出全部分支

git merge dev :把dev分支的工做成果合併到master分支上

git branch -d 分支名 : 刪除分支

分支策略

在實際開發中,咱們應該按照幾個基本原則進行分支管理:

首先,master分支應該是很是穩定的,也就是僅用來發布新版本,平時不能在上面幹活;

那在哪幹活呢?幹活都在dev分支上,也就是說,dev分支是不穩定的,到某個時候,好比1.0版本發佈時,再把dev分支合併到master上,在master分支發佈1.0版本;

你和你的小夥伴們每一個人都在dev分支上幹活,每一個人都有本身的分支,時不時地往dev分支上合併就能夠了。

因此,團隊合做的分支看起來就像這樣:

clipboard.png

多人協做

clipboard.png

相關文章
相關標籤/搜索