分佈式版本控制Git 快速入門

分佈式版本控制GIT

Git是一個開源的分佈式版本控制系統,可以有效、高速地處理從很小到非常大的項目版本管理

目錄
1.git的特點
2.git與svn的區別
3.git 安裝以及基礎命令
4.git 分支
5.遠程倉庫
6.規範團隊git管理

1.Git 特點

  • git每臺電腦都有一個版本庫,可以在本地做版本管理。
    速度快,git的速度遠超大部分版本管理系統,包括svn。
  • 強大的分支管理功能。
  • 活躍的開源社區,如最著名的GitHub。GitHub訪問地址:https://github.com/

2.Git與SVN的區別

  • git 是分佈式,而svn是集中式
  • git與svn的版本機制不一樣,git 的內容完整性優於SVN
  • git不需要聯網,就可以在本地提交

3.git 安裝以及基礎命令

安裝包下載地址:https://git-scm.com/downloads

常用命令

本地倉庫創建

git init 初始化一個本地倉庫,在同級目錄下會出現一個隱藏的.git文件
git配置
查看:git config -l
配置:git config xxx (必配項user.name和user.email)
三級文件配置從高到底排序如下:
當前目錄下的 .git/config
當前用戶目錄/.gitconfig
git安裝目錄/etc/gitconfig

git本地提交

git add filename 提交到索引(-A代表全部)
git commit -m ‘版本描述’ 提交到文件庫
git commit -am ‘版本描述’ 一步完成提交

git中的三類文件

被追蹤的(tracked):已經加入文檔庫
不被追蹤的(untracked):沒有加入文檔庫
忽略的(ignored):忽略那些不需要管理的文件夾或文件
玩過svn的也是知道,分本地文件,svn線上文件,本地忽略文件
查詢狀態 git status

忽略的

目錄下建立一個.gitignore文件(可以有多個,影響範圍當前文件及子文件)

提交點

ID:每一次commit都是一個提交點,唯一標識SHA1的ID,ID可使用前4至7個數字表示
標籤:git tag -a v0.2 4a80f64(提交點SHA1的ID的前7位)

日誌

git log
git log --oneline
git log --oneline --graph

4.git 分支

分支:分支意味着你可以從開發主線(master)上分離開,在不影響主線的同時繼續工作

創建分支
git branch 列出當前開發所有分支(默認會有master)
git branch king 創建一個king的分支(最新提交點)
git branch king 提交點 創建一個king的分支(指定提交點)
刪除分支
git branch -d king 刪除king分支
切換分支
git checkout king 切換至king分支
合併分支
git checkout master
git merge king 合併分支king和主幹master,合併後的提交點屬於主幹master

5.遠程倉庫

gitHub是一個面向開源及私有軟件項目的託管平臺,因爲只支持git 作爲唯一的版本庫格式進行託管,故名gitHub
與github連接需要通過加密通道,有兩種方式, 一種ssh,一種https

  • clone 克隆
    git clone “遠程地址” “本地文件名稱”
  • push 推送本地修改至遠程git文檔庫
    git push -u enjoy-https master
  • fetch與pull
    fetch是將遠程主機的最新內容拉到本地,不進行合併
    git fetch enjoy-https master
  • pull 則是將遠程主機的最新內容拉下來後直接合並 fetch+merge
    git pull enjoy-https master

注:

  1. 本地新建一個遠程連接 enjoy
    git remote add enjoy-https https://github.com/kingjames223/enjoy-git.git
  2. 查看遠程連接 git remote
  3. 查看遠程連接詳情 git remote -v

6.規範團隊git管理

Production分支

Master分支,這個分支只能從其他分支合併,不能在這個分支直接修改

Develop分支

這個分支是我們是我們的主開發分支,包含所有要發佈到下一個Release的代碼,這個主要合併與其他分支,比如Feature分支

Feature分支

這個分支主要是用來開發一個新的功能,一旦開發完成,我們合併回Develop分支進入下一個Release

Release分支

當你需要一個發佈一個新Release的時候,我們基於Develop分支創建一個Release分支,完成Release後,我們合併到Master和Develop分支

Hotfix分支

當我們在Production發現新的Bug時候,我們需要創建一個Hotfix, 完成Hotfix後,我們合併回Master和Develop分支,所以Hotfix的改動會進入下一個Release

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章