1. 程式人生 > 實用技巧 >git 操作

git 操作

git

簡介

1:什麼是git
	版本控制器 - 控制的物件是開發的專案程式碼
2:程式碼開發時間軸:
	需求1 => 版本庫1 ==> 需求2 => 版本庫2 => 版本庫3(版本庫1) => 版本庫4(版本庫2) 
3:版本控制器
    完成協同開發專案,幫助程式設計師整合程式碼
        i)幫助開發者合併開發的程式碼
        ii)如果出現衝突程式碼的合併,會提示後提交合並程式碼的開發者,讓其解決衝突
    軟體:SVN 、 GIT(都是同一個人的個人專案)
        github、gitee(兩個採用git版本控制器管理程式碼的公共平臺)
    git:叢集化、多分支
4:git裝完,既有客戶端,又有服務端
5:git工作流程
	-工作區,暫存區,版本庫
6:遠端倉庫:github,碼雲,公司內部(gitlab)

git與svn比較

1:svn(集中式管理),git(分散式管理)

git的工作流程

git版本間通訊

git分支管理

git安裝

1.下載對應版本:https://git-scm.com/download
2.安裝git:在選取安裝路徑的下一步選取 Use a TrueType font in all console windows 選項(一路下一步即可)

git使用

核心總結(流程)
1)有紅色資訊(工作區有內容),就執行 add 
2)全綠資訊(內容全部在暫存區),才執行 commit
3)只有被版本庫控制的程式碼,才能被監聽,所以可以回滾到任何一個版本
相關命令
# 紅色表示未被管理
# 綠色表示提交到暫存區了
右鍵--git bash here
1:將已有的資料夾 - 初始化為git倉庫
	1.1:進入你想管理的資料夾內部
		cd 目標資料夾名
	1.2:初始化
		git init 資料夾名---->指定資料夾下初始化為git倉庫
		git init------>當前路徑全部被管理

2:在倉庫目錄終端下 - 設定全域性使用者
		git config --global user.name '使用者名稱'
		git config --global user.email '使用者郵箱'
	注:在全域性檔案 C:\Users\使用者資料夾\.gitconfig新建使用者資訊,在所有倉庫下都可以使用
	
3:在倉庫目錄終端下 - 設定區域性使用者
         git config user.name '使用者名稱'
            -- 使用者名稱
        git config user.email '使用者郵箱'
            -- 使用者郵箱		
注:在當前倉庫下的config新建使用者資訊,只能在當前倉庫下使用
注:一個倉庫有區域性使用者,優先使用區域性使用者,沒有配置再找全域性使用者		
	
4:檢視庫狀態
	當倉庫中有檔案增加、刪除、修改,都可以在倉庫狀態中檢視
	git status  
		-- 檢視倉庫狀態
	git status -s  
		-- 檢視倉庫狀態的簡約顯示

5:工作區操作
	通過任何方式完成的檔案刪與改
	空資料夾不會被git記錄

6:撤銷工作區操作:改、刪(瞭解)
	git checkout .
		-- 撤銷所有暫存區的提交
	git checkout 檔名
		-- 撤銷某一檔案的暫存區提交
		eg:把a的新增提交到版本管理,然後新建b,在a中新增一行
    		-git checkout .   # 恢復到提交版本的位置,a是空的,b沒有被git管理,所有,是什麼樣,還是什麼樣
		
7:工作區內容提交到暫存區
	git add .  
		-- 新增專案中所有檔案
	git add 檔名  
		-- 新增指定檔案
8:撤銷暫存區提交:add的逆運算(很少使用)
    git reset HEAD .
        -- 撤銷所有暫存區的提交
    git reset 檔名
        -- 撤銷某一檔案的暫存區提交
    git reset .
        -- 撤銷所有暫存區的提交
9:提交暫存區內容到版本庫
	git commit -m "版本描述資訊"
10:撤銷版本庫提交:commit的逆運算
回滾暫存區已經提交到版本庫的操作:
    檢視歷史版本:
        >: git log
        >: git reflog
    檢視時間點之前|之後的日誌:
        >: git log --after 2018-6-1
        >: git log --before 2018-6-1
        >: git reflog --after 2018-6-1
        >: git reflog --before 2018-6-1
    檢視指定開發者日誌
        >: git log --author author_name
        >: git reflog --author author_name
    回滾到指定版本:
        回滾到上一個版本:
            >: git reset --hard HEAD^
            >: git reset --hard HEAD~
        回滾到上三個版本:
            >: git reset --hard HEAD^^^
            >: git reset --hard HEAD~3
        回滾到指定版本號的版本:
            >: git reset --hard 版本號 (重點)
            >: eg: git reset --hard 35cb292

11:忽略檔案
		空資料夾不被管理
		指定某些檔案或者資料夾不被git管理
		步驟:在專案根路徑,跟.git資料夾一個路徑,新建.gitignore.,在裡面配置
		# 號是註釋,沒有用
        資料夾名字,表示資料夾忽略,不被管理
        /dist 表示根路徑下的dist資料夾,不被管理
        *.py   表示字尾名為py的檔案,都被忽略
        *.log*
        
12:分支操作:
    檢視分支 git branch   檢視所有分支,分支是綠的,表示在當前分支上
    建立分支 git branch dev
    建立並切換到 git checkout -b dev
    刪除分支 git branch -d dev
    切換分支 git checkout dev
    合併分支 git merge 分支名  # 把dev分支合併到master分支:切換到master分支,執行合併dev分支的命令