關於Git和Git的常用命令
一.Git(分散式管理版本控制系統)
Git(讀音為/gɪt/。)是一個開源的分散式版本控制系統,可以有效、高速的處理從很小到非常大的專案版本管理。 [1] Git 是 Linus Torvalds 為了幫助管理 Linux 核心開發而開發的一個開放原始碼的版本控制軟體。
Git 是用於 Linux核心開發的版本控制工具。與常用的版本控制工具 CVS, Subversion 等不同,它採用了分散式版本庫的方式,不必伺服器端軟體支援(wingeddevil注:這得分是用什麼樣的服務端,使用http協議或者git協議等不太一樣。並且在push和pull的時候和伺服器端還是有互動的。),使
特點:
分散式相比於集中式的最大區別在於開發者可以提交到本地,每個開發者通過克隆(git clone),在本地機器上拷貝一個完整的Git倉庫。
功能:
1、從伺服器上克隆完整的Git倉庫(包括程式碼和版本資訊)到單機上。
2、在自己的機器上根據不同的開發目的,建立分支,修改程式碼。
3、在單機上自己建立的分支上提交程式碼。
4、在單機上合併分支。
5、把伺服器上最新版的程式碼fetch下來,然後跟自己的主分支合併。
6、生成補丁(patch),把補丁傳送給主開發者。
7、看主開發者的反饋,如果主開發者發現兩個一般開發者之間有衝突(他們之間可以合作解決的衝突),就會要求他們先解決衝突,然後再由其中一個人提交。如果主開發者可以自己解決,或者沒有衝突,就通過。
8、一般開發者之間解決衝突的方法,開發者之間可以使用pull 命令解決衝突,解決完衝突之後再向主開發者提交補丁。
二.Git的常用命令
1.配置資訊
git --version(檢視git版本資訊)
git config --global user.name/user.email(獲取當前使用者名稱/郵箱)
2.登入Git
git config --global user.name "自己的使用者名稱"
git config --global user.email "自己的郵箱"
3.Git工作區倉庫的建立
進入指定資料夾,使用git init 命令建立
4.檔案的提交
先了解下git的3大區域
1、工作區(working directry) 2、暫緩區(stage index) 3、Git倉庫(
提交命令:
git add . (新增所有工作區檔案到暫存區)
git add filename(新增工作區指定檔案至暫存區)
git commit -m "描述語句(解釋檔案/檔案的具體更改)" (新增暫存區所有檔案到Git倉庫)
git commit -am "描述語句(解釋檔案/檔案的具體更改)" (新增工作區修改的檔案到Git倉庫)
5.檔案的 回退版本,撤銷,刪除操作等
1.回退版本:
格式1: git reset --hard HEAD^ 解釋: HEAD表示當前最新版本 HEAD^表示當前最新版本的, 上一個版本 HEAD^^表示當前最新版本的, 前兩個版本, 依次類推 HEAD~1 表示當前最新版本的, 上一個版本 HEAD~2 表示當前最新版本的, 前兩個版本, 依次類推 格式2: git reset --hard 版本號 注意: 版本號很長, 指定的大於等於7未即可
2.撤銷修改 撤銷工作區:(本質將暫存區的檔案覆蓋工作區檔案) 格式:git checkout 檔名
撤銷暫存區:
格式: git reset HEAD 檔名 #將暫存區的程式碼撤銷到工作區 git checkout 檔名 #撤銷工作區程式碼
注意: 只能撤銷工作區, 暫存區的程式碼, 不能撤銷倉庫區的程式碼 撤銷倉庫區的程式碼就相當於回退版本操作
3 .刪除檔案: 格式1:rm filename #直接刪除磁碟檔案,linux指令 格式1:git rm filename #刪除暫存區檔案 如果誤刪,撤銷: 格式1: rm 檔名 #誤刪,未提交 git checkout filename--檔名 #撤銷 格式2: git rm 檔名 #誤刪 恢復: git reset --hard HEAD^ #撤銷
6.檔案的狀態,以及版本狀態與對比查詢
1.檔案狀態查詢命令:
git status(檢視檔案狀態狀態)
檔案狀態分為四中:
untracked(未被跟蹤的)
modified(檔案已經修改,為新增到暫存區的)
staged (在暫存區未提交到版本庫的)
commitited(git版本庫中)
2.版本狀態查詢命令:
git log (檢視版本資訊,提交時間等等)
git reflog(檢視所有的版本資訊,包括刪除的版本)
3.對比版本 對比版本庫與工作區程式碼差異: 格式:git diff HEAD -- xxx.py 格式解釋: HEAD表示版本庫, xxx.py表示工作區 出現綠色加號(+) 表示工作區相對於版本庫增加的程式碼
對比版本庫: 格式: git diff HEAD HEAD^ -- login.py HEAD: 表示當前版本 HEAD^:表示上個版本 login: 表示對比的檔案
三.Git的遠端簡單操作
(1) 遠端倉庫相關命令
檢出倉庫:$ git clone [url](倉庫的地址) (將倉庫的檔案下載到指定的資料夾,即本地工作區)
檢視遠端倉庫:$ git remote -v
新增遠端倉庫:$ git remote add [name] [url]
刪除遠端倉庫:$ git remote rm [name]
修改遠端倉庫:$ git remote set-url --push [name] [newUrl]
拉取遠端倉庫:$ git pull [remoteName] [localBranchName]
推送遠端倉庫:$ git push [remoteName] [localBranchName]
(2)分枝操作
git branch(檢視本地分枝)
git branch -r (檢視遠端分枝)
git branch [newname](建立一個名字未newname的分枝,HEAD不會自動指向此分枝)
git checkout name (切換分枝)
git branch -d name(刪除分枝,不能刪除當前指向的分枝)
合併分支:git merge [name] ----將名稱為[name]的分支與當前分支合併
建立遠端分支(本地分支push到遠端): git push origin [name]
刪除遠端分支: git push origin :heads/[name] 或 [git push origin :[name]
------------------------------------------------------------文章寫的比較匆忙,後期將完善內容------------------------------------------------------------