git
1.git基本
分佈式版本管理系統
1)特點
版本管理,可以解決多人同時開發的代碼問題,也可以解決找回歷史代碼的問題。
分佈式:同一個Git倉庫,可以分佈到不同的機器上。
2)創建版本庫
1>創建一個目錄,在目錄下創建版本庫,命令: git init
2>創建版本
a 在創建的目錄下,創建一個文件code.txt
b 使用命令創建一個版本
git add code.txt
git commit -m '版本1'
c 使用如下命令查看版本記錄
git log
d 回到某一個版本,命令:
git reset –hard HEAD^
HEAD^
表示回到前一個版本,HEAD^^
表示回到前前個版本
HEAD-1
表示前1個版本,HEAD-100
表示前100個版本
3>工作區和暫存區
a 工作區
電腦中的目錄
b 暫存區
工作區有一個隱藏目錄 .git目錄,是git的版本庫
版本庫中stage,即爲暫存區
git add
把文件修改添加到暫存區
git commit
把文件提交修改,把暫存區內容提交到版本分支
git status
查看當前工作狀態,可以顯示修改了哪些文件,有哪些文件未提交
4>撤銷修改
未到暫存區,git checkout – 文件名
丟棄工作區的修改
已經到暫存區,git reset HEAD 文件名
即可取消暫存,然後用上面的命令即可撤銷修改
已經保存版本,可以參考上面的版本回退
5>對比文件不同
命令:
git diff HEAD –- 文件名
輸入命令後,顯示的內容中,-代表HEAD版本中文件的內容,+代表工作區文件的內容
6>對比兩個文件不同
git diff HEAD HEAD^ -- 文件名
現版本和前一個版本的不同
7>刪除文件
rm 文件名
git rm 文件名
確認刪除就 git commit
回退就 git reset HEAD 文件名
2.git分支
1)基本操作
1>主分支 master分支,HEAD指向master,master指向最新版本
2>當創建新的分支,git創建一個指針叫dev,指向master相同的提交,再把HEAD指向dev,就表示當前分支在dev上
3>此時,工作區的修改和提交就是針對dev分支了,如有新的提交,dev指針向前一步,master指針不動
4>如果dev上的工作完成,進行合併。把master指向dev的當前提交,完成合並。
5>刪除dev指針,HEAD指向master
命令:git branch
查看分支
創建分支:git checkout -b dev
切換到新的分支dev
編輯完之後,切換回master:git checkout master
合併:git merge dev
刪除分支:git branch -d dev
2)解決衝突
master分支和dev分支都發生了更新時的合併。
手動解決衝突之後,重新提交即可。
3)分支管理策略
通常git採用快速合併模式,但是有些快速合併並不能成而且合併時沒有衝突,這個時候會合並之後並做一次新的提交。
禁用快速合併:git merge –-no-ff -m ‘備註‘ 分支名
4)bug分支
git提供了一個stash功能,可以把當前工作現場儲藏起來,等以後恢復現場後繼續工作
git stash
即可保存現場
之後可以去修復bug
bug修復後,通過禁用快速合併方式與master進行合併
之後回到dev分支幹活:git stash list
列出工作現場
git stash pop
恢復工作現場
3.github
1)創建倉庫
點擊 New repository
add .gitignore 可以忽略的文件
2)添加ssh賬戶
點擊頭像下的settings,輸入shh公鑰
生成ssh公鑰方法:
在用戶主目錄下,編輯文件:.gitconfig 修改git配置,修改爲註冊github的郵箱和用戶名
使用命令生成ssh公鑰:ssh-keygen -t rsa -C ‘註冊郵箱‘
3)克隆項目
進入github主頁的項目倉庫頁面
複製git地址
在電腦上 git clone 粘貼git地址
克隆出錯時,輸入下面兩條命令:
eval ‘$(ssh-agent -s)’
ssh-add
4)推送代碼
推送分支
git push origin 分支名稱
本地分支跟蹤服務器分支:
git branch –-set-upstream-to=origin/遠程分支名稱 本地分支名稱
從遠程分支拉取代碼
git pull origin 分支名稱