1. 程式人生 > 實用技巧 >git原理及基本操作

git原理及基本操作

1.git基本概念

1.1 常見版本管理工具

git

  1.git是分散式的,每一個安裝git環境的機器都有線下的版本倉庫
  2.開發者無需把程式碼提交到線上倉庫(GitHub、gitee、gitlab)

SVN

  1.SVN是一個集中的版本管理工具
  2.開發者必須把程式碼提交到SVN伺服器,本地沒有版本倉庫

1.2 線上倉庫

多人協作開發時,會管理程式碼
github / gitee
svn

1.3 git原理

工作區: 就是你在電腦上看到的目錄,比如目錄下testgit裡的檔案(.git隱藏目錄版本庫除外)。
暫存區 : 暫存區就是資料夾 .git中的一個小部分(.git資料夾就是版本庫)
版本庫:工作區有一個隱藏目錄.git,這個不屬於工作區,這是版本庫, 版本庫中還有Git為我們

2.gitee中使用

# Git 全域性設定:
git config --global user.name "王賽賽呀"
git config --global user.email "[email protected]"

# 建立 git 倉庫:
mkdir adsafghj
cd adsafghj
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/wangsaisaiya/adsafghj.git
git push -u origin master

# 已有倉庫?
cd existing_git_repo
git remote add origin https://gitee.com/wangsaisaiya/adsafghj.git
git push -u origin master

3.git常見命令

3.1.簡單提交

git add xxx.txt # 將檔案提交到暫存區 
git commit -m 'xxx' # 將程式碼提交到本地版本倉庫 
git status # 看到未提交到倉庫的修改檔案(工作區、暫存區) 
git log

3.2.回滾

git log #檢視所有提交到倉庫的版本記錄: git log -2
git reflog #檢視所有操作記錄(狀態的md5值和改變的值)
git reset --hard d9e0ed0 #回到指定版本(d9e0ed0是建立版本的MD5值得前6位或者7
位)
git reset --hard HEAD^ #回到上一個版本

3.3.撤銷修改

vim Readme #我們在Readme檔案中寫了一些錯誤的程式碼
git add . #然後又一不小心將檔案從工作區提交到了 stage區
git reset HEAD Readme #將Readme中剛提交到 stage區 的程式碼撤回到工作區
git status #檢視目前工作區狀態
git checkout -- Readme #將Readme在工作區錯誤的程式碼丟棄

3.4.強制使用master覆蓋原生代碼

git fetch --all
git reset --hard origin/master
git pull

4.git分支管理

4.1 分支管理概念

master 主分支,穩定程式碼,為生產環境做準備的
develop 開發分支,為開發服務

4.2 分支使用

'''1. 從master分支切換到dev分支進行開發'''
git checkout -b dev master # 從master分支建立dev開發分支
git branch # 可以看到現在已經切換到dev分支了
vim Readme # 模擬在專案中修改程式碼
git add . # 把工作區中所有變更全部提交到(暫存區)
git commit -m 'in dev' # 把暫存區程式碼提交到本地git倉庫(本地git倉庫)
git push origin dev # 把程式碼先推倒dev分支,讓測試人員測試
'''2. 當測試人員測試完成後將dev分支程式碼合併到master形成文件版本'''
git checkout master # 開發完成後,需要合併回master分支,先切換到master分支
cat Readme # 可以看到master分支的內容沒有修改
git merge --no-ff dev # 將剛剛dev中修改的程式碼合併到master
git push origin master # 將本地倉庫的程式碼推送到線上倉庫(線上git倉庫)