git 常用操作

Git是流行的分布式項(xiàng)目版本管理系統(tǒng),利用git flow這個(gè)優(yōu)秀的分支模型可以實(shí)現(xiàn)多人合作開發(fā)項(xiàng)目;在 githbu上也可以學(xué)習(xí)其他優(yōu)秀項(xiàng)目!在這里結(jié)合自己使用習(xí)慣,總結(jié)一下git的常用操作。想詳細(xì)了解git的開發(fā)人員可以參考

  1. 廖雪峰git教程

git安裝

一般是先 下載git客戶端,安裝好之后在電腦桌面點(diǎn)擊右鍵,能看到Git Bash Here就說(shuō)明安裝成功!在本地利用 git初始化項(xiàng)目,然后再 push到你的 github上。接下來(lái)模擬一下這一過程,

  1. 在桌面新建文件夾 project
  2. 進(jìn)入 project,點(diǎn)擊右鍵在此目錄下進(jìn)入 git bash
# 設(shè)置該git user
$ git config --global user.name  "Your Name"
$ git config --global user.email "email@example.com

# 初始化
git init

# 此時(shí) project內(nèi)有隱藏文件 .git管理,查看
ls -a
  1. 編輯文件
# 創(chuàng)建 1.txt 加入一段文字,也可以采用 vim
touch 1.txt
  1. 利用 git status查看項(xiàng)目文件狀態(tài),可以顯示哪些新增文件,刪除文件,或者各個(gè)區(qū)內(nèi)的文件狀態(tài)!

git各區(qū)概念

git正是利用工作區(qū)、暫存區(qū)、版本區(qū)這三個(gè)區(qū)來(lái)實(shí)現(xiàn)分布式管理項(xiàng)目。利用這三個(gè)區(qū)結(jié)合 github就可以實(shí)現(xiàn)去中心化,因?yàn)槊恳粋€(gè)開發(fā)人員的本地都會(huì)有一份項(xiàng)目開發(fā)過程的log備份,就算 github掛掉了,只要拿到任何一個(gè)開發(fā)人員的一份備份也可以還原分布式開發(fā)!

  1. 工作區(qū),就是在 project目錄下看到的文件,git bash編輯命令 ls -ll 即可看到工作區(qū)的文件!
  2. 暫存區(qū),就是 git add [文件名]到的目錄區(qū),當(dāng)需提交的文件量多,可以利用 git add .添加全部文件,同時(shí)包括刪除操作!執(zhí)行 add命令,還是顯示紅色字體,即未添加成功。可能因?yàn)槟硞€(gè)文件夾內(nèi)含另外一個(gè)被 git管理的目錄,刪除該目錄下隱藏的git 文件即可!
# 在 project內(nèi)利用 `git status`看文件狀態(tài)
# 顯示**紅色**提示,說(shuō)明 1.txt未提交到暫存區(qū)
git add 1.txt

# 此時(shí) 1.txt已提交到暫存區(qū),查看暫存區(qū)目錄文件
git ls-files
  1. 版本區(qū),將暫存區(qū)的文件提交到版本區(qū)內(nèi),git status 顯示的藍(lán)色提示,就是說(shuō)明添加到暫存區(qū)的文件未被提交到版本區(qū),commit至版本區(qū)。每次 push就是將版本區(qū)的文件提交至 github
git commit -m '[本次提交的注釋]'

push項(xiàng)目到 github

當(dāng)文件成功commit到版本區(qū)之后,git status顯示 nothing to commit,接下來(lái)將項(xiàng)目 push到github。

  1. 在 githbu上注冊(cè)賬號(hào),創(chuàng)建一個(gè)倉(cāng)庫(kù)
  2. 設(shè)置提交的遠(yuǎn)程庫(kù),采用 https 協(xié)議,origin只是一個(gè)名字可以改變
# 采用https協(xié)議,不要配置公私鑰,但每次要輸密碼
git remote add origin https://github.com/lcs1234567/project.git

# -u 下次執(zhí)行g(shù)it push 就會(huì)默認(rèn)push origin
git push -u origin master
  1. 亦可以采用ssh協(xié)議,因?yàn)閟sh協(xié)議,要配置設(shè)備私公鑰至github,待私公鑰生成,打開存放目錄,將公鑰復(fù)制,添加到你的github,點(diǎn)擊頭像/setting/SSH and GPG keys,將項(xiàng)目 push到 github。第一次利用ssh push是會(huì)提示 authenticity can't be established,輸入yes,回車就可以了!
# 生成設(shè)備私公鑰, git bash中輸入以下命令,一路按回車鍵
ssh-keygen -t rsa

git remote add origin git@github.com:lcs1234567/project.git

git push origin master
  1. 在本地git bash可以查看配置好的遠(yuǎn)程倉(cāng)庫(kù)
git remote -v

git 常用命令

# 設(shè)置 本機(jī)git user
$ git config --global user.name  "Your Name"
$ git config --global user.email "email@example.com"

# https 協(xié)議 和 SSH 協(xié)議連接 github 區(qū)別


# 刪除git 本地分支
$ git branch -d <branch_name>

# 刪除github 遠(yuǎn)程分支
$ git push --delete <remote_name> <branch_name>


# 本地 創(chuàng)建并切換到該分支
 git checkout -b develop

# 拉取遠(yuǎn)程分支,并且切換到該分支(原先本地沒該分支)
git checkout -b <branch_name> <remote_name>/<branch_name>

git checkout -b develop origin/develop
或者
git checkout -t origin/develop


# 查看遠(yuǎn)程分支
git branch -a


# 在某個(gè)分支上回歸版本
git log  // 查看歷史 commitId

git log --pretty=oneline // 查看當(dāng)前所在commitId

git reset --hard <commitId>

# git tag 命令
git tag
git tag 0.0.1
git tag -a 0.0.1 -m "version 0.1 released" 
git tag -a 0.0.1 -m "version 0.1 released" 1094adb
git show 0.0.1

# 刪除本地tag
git tag -d 0.0.1

# push tag
git push origin 0.0.1
git push origin --tags

# 刪除遠(yuǎn)程tag
git tag -d 0.0.1
git push origin :refs/tags/0.0.1

git flow

一個(gè)人開發(fā)時(shí),master/develop 兩個(gè)分支就可以滿足要求。項(xiàng)目組合作就不同了,會(huì)出現(xiàn)各種問題。比如

  • 不可能只在develop 開發(fā),今天你在develop 完成需求A,需求B 開發(fā)到一半,要求發(fā)版本怎么辦?
  • 從develop 遷出分支完需求,怎樣分類、明確分支功能。如feature/bugfix
  • 怎樣發(fā)版本,打tag,線上版本處理bug 怎樣快速修復(fù)

git flow 該分支模型就是用來(lái)解決多人合作開發(fā)遇到的問題,理解 gitflow這篇文章足夠了

git GUI

剛開始我一點(diǎn)也不喜歡git 的圖形化界面操作,認(rèn)為用命令行操作很 cool,但是部門項(xiàng)目開發(fā)、測(cè)試流程繁瑣,并且依賴人工記憶。一般項(xiàng)目環(huán)境分為(其中部署可用shell script 做成可視化操作),

  1. 本地開發(fā)
  2. 內(nèi)網(wǎng)測(cè)試
  3. 外網(wǎng)部署,可能有個(gè)外測(cè)

由于在內(nèi)網(wǎng)測(cè)試的功能不會(huì)一定要部署到正式環(huán)境,因此部門添加了一個(gè)pre-develop 分支,完成需求流程就變成這樣,

  1. develop 遷出 feature,完成需求,合并到pre-develop
  2. 自己將 pre-develop 部署到內(nèi)網(wǎng),找驗(yàn)收需求方測(cè)試
  3. 測(cè)試通過,就把feature finish 到 develp,再部署外網(wǎng)。這一步還利用了code review 的步驟,開發(fā)人員通過 pull request 提交合并,再由檢查你代碼寫得是否規(guī)范的同事完成合并。

如果測(cè)試之后有問題需要修改,就必須來(lái)回切換分支(流程不能出錯(cuò))。萬(wàn)一把代碼寫在錯(cuò)的分支就悲劇了,所以 git GUI sourcetree 能幫我們減輕心智負(fù)擔(dān),多出時(shí)間去完成自己的todo,學(xué)習(xí)其他技術(shù),鍛煉身體,哈哈!

git.png

這就是一些常用的git 管理項(xiàng)目的流程,歡迎大家給我留言,提建議,指出錯(cuò)誤,一起討論學(xué)習(xí)技術(shù)的感受!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 常用命令: 查看、添加、提交、刪除、找回,重置修改文件 git help # 顯示command的help gi...
    even_cheng閱讀 318評(píng)論 0 3
  • 1. 本地創(chuàng)建版本庫(kù) 中文亂碼的解決辦法: 在git命令行輸入git config --global core.q...
    米酒真香閱讀 1,149評(píng)論 0 50
  • 安裝及配置:配置用戶名:git config --global user.name"你的名字"配置e-mail:g...
    LenHong閱讀 332評(píng)論 0 0
  • @[toc] 一、Git配置 使用 Git Bash 控制臺(tái)操作 初始化 .git文件夾下的文件含義HEAD 文件...
    哈哈大圣閱讀 395評(píng)論 0 1
  • git 幫助 git的三種狀態(tài) 已提交(committed),已修改(modified)和已暫存(staged) ...
    RevinDuan閱讀 1,266評(píng)論 0 0

友情鏈接更多精彩內(nèi)容