一.Git(分佈式管理版本控制系統)
Git(讀音爲/gɪt/。)是一個開源的分佈式版本控制系統,可以有效、高速的處理從很小到非常大的項目版本管理。 [1] Git 是 Linus Torvalds 爲了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。
Git 是用於 Linux內核開發的版本控制工具。與常用的版本控制工具 CVS, Subversion 等不同,它採用了分佈式版本庫的方式,不必服務器端軟件支持(wingeddevil注:這得分是用什麼樣的服務端,使用http協議或者git協議等不太一樣。並且在push和pull的時候和服務器端還是有交互的。),使源代碼的發佈和交流極其方便。 Git 的速度很快,這對於諸如 Linux kernel 這樣的大項目來說自然很重要。 Git 最爲出色的是它的合併跟蹤(merge tracing)能力。
特點:
分佈式相比於集中式的最大區別在於開發者可以提交到本地,每個開發者通過克隆(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]
------------------------------------------------------------文章寫的比較匆忙,後期將完善內容------------------------------------------------------------