1.安裝
分布式版本控制:工作電腦儲存完整的代碼,中央伺服器挂了也可以使用
集中式版本控制:中央伺服器挂了就涼涼
1 sudo apt-get install git
git安裝
檢測安裝成功
git
2.建立版本庫
新鍵一個目錄git_test
mkdir git_test
初始化git init
git init
3.版本的建立和使用
在git_test目錄下建立一個檔案code.txt
touch code.txt
建立一個版本
設定郵箱
git config --global user.email '你的郵箱'
設定使用者名(作者)
git config --global user.name '小黑'
增加版本檔案(可以添加多個檔案,一起commit)
git add code.txt
送出版本檔案,後面是版本說明
git commit -m '版本1.0'
檢視版本情況
git log
可以看到commit後面的版本序列号
commit 02fc1b4e2bba0d2d44485f1b0f60c425154b364e
更改code.txt後建立新版本,隻是記錄你相當于前一個版本的情況
git add code.txt
git commit -m '版本1.1'
可以看到新的版本資訊
git log
版本的回退
HEAD^:HEAD代表目前版本,一個^代表回退一個版本
HEAD~回退版本數:~1代表回退一個版本,~100回退100個版本
回退一個版本
git reset --hard HEAD^
利用版本編号commit後面的數,重新回到目前版本1.1
git reset --hard 9acd9d0fa55adb14bb0e352bb99761a4144932b1
當然用前幾個編号就行,回到版本1.0
git reset --hard 02fc1b4e
4. 工作區和暫存區
電腦中的目錄就是工作區,這裡我們的git_test就是工作區
工作區的隐藏目錄.git,而是git版本庫,版本庫中有個暫存區(git add--工作區進暫存區)(git commit----暫存區到版本情況)
檢視修改情況
git status
隻會管理暫存區的修改,沒有送出的暫存區的修改不管理 (簡單講,嚴格按照步驟來,就沒啥事情)
丢棄工作區的修改
git checkout -- code.txt
如果已經送出到暫存區了需要2步(已經ADD)
1.撤銷暫存區
git reset HEAD code.txt
2.撤銷工作區
git checkout -- code.txt
對比檔案的不同(-代表HEAD版本,+代表工作區的檔案)
git diff HEAD -- code.txt
對比2個版本的不同
git diff HEAD HEAD^
删除檔案
rm code2.txt
同樣可以用撤銷工作區的修改,恢複檔案,同樣的也可以以把删除作為版本的一種
git checkout -- code2.txt
5.分支管理
主分支:master分支
建立分支:就是建立新的指針,改變HEAD的指向
檢視有幾個分支
git branch
建立并切換分支(原本的都存在)
git checkout -b dev
後面的操作都是在dev分支的操作(隻是指針)
切換分支
git checkout master
合并分支(就是把master指針,放到這個分支這裡)
git merge dev
删除分支(去掉指針)
git branch -d dev
沖突的解決(2個分支都修改了同一個檔案),無法快速合并,可以手動修改在送出一個新的
檢視沖突的修改情況
git log --graph --pretty=oneline
删除dev分支
git branch -d dev
2個分支不編輯同一個檔案,可以進行合并,不會沖突,但是不會快速送出,會幫你合并後進行新的送出,會需要你合并的說明資訊
不使用快速合并,讓他進行新的送出(BUG臨時分支,就不會進行快速合并,會使用這個)
git merge --no--ff -m '禁用fast-forward' dev
儲存工作現場(去修複bug)
git stash
不使用快速合并修複bug,并删除BUG分支,恢複工作現場(切換回工作區)
儲存工作現場清單
git stash list
恢複現場
git stash pop
6.github網站
建立倉庫、
settings中綁定SSH
生成SSH
在主目錄下編輯隐藏檔案
vim .gitconfig
生成ssh
ssh-keygen -t rsa -C '郵箱'
檢視
cd .ssh
cat id_rsa.pub
将得到的公鑰放在github上
克隆項目
在Ubuntu上使用指令克隆項目
git clone [email protected]:HEKAI3-2/xiaohei.git
開發上傳
本地分支跟蹤遠端分支
git branch --set-upstream-to=origin/dev dev
編輯新的檔案,送出不推送
可以檢視跟遠端分支的比較情況,并推送
從遠端分支上拉取代碼
git pull origin dev
實際使用git
最簡單的掌握