Git學習筆記(單人模式詳盡篇)

2021-08-04 12:59:56 字數 2029 閱讀 3749

記錄單人工作模式下詳盡版git命令(含個人理解)。

本地資料夾(寫**的地方)是git的工作區,.git叫版本庫,其中叫stage的是暫存區,遠端倉庫,git管理並跟蹤的是修改。

fork:是指你想向該倉庫貢獻**,才fork到自己repo,再clone到本地之後修改。

watch:是隨時觀察到該repo的所有動態,包括issue等。

star:是收藏某個repo。

$ git config --global user.name yucicheung

$ git config --global user.email '[email protected]'

$ git init
$ git add .

$ git commit -m "first commit"

$ git push origin master

clone是在主目錄下用的,clone是從無到有。

pull是在工作區里用的,從舊到新。

$ git status #檢視工作區狀態

$ git diff #如果status告訴你檔案修改過,用此命令檢視差別

$ git log #到當前head為止的提交

$ git reset --hard head^ # head^表示版本號,--hard表示版本回退且head指標一起回退

$ git reflog #記錄你的所有提交

$ git rm #首先手動刪除後,再用git刪除

$ git checkout --file #撤銷file在工作區的修改

$ git reset head file # 按當前head恢復,是把暫存區的修改撤銷掉,重新放回工作區。(所以git reset既可以撤銷暫存區的修改,也可以回退版本)

如果工作區的版本落後於版本庫的版本,push時要加上--force選項。

因為需要一直保持master主分支是穩定可用,只用於發布新版本,那麼在開發時就不能在該分支上修改,而應該新建分支。

所以除主分支以外的分支都是不穩定,大家各自有自己的分支,修改後往dev分支上合併,最後往master分支上合併。

$ git checkout -b dev # 新建dev分支並切換到

# 相當於下面兩條命令

$ git branch dev # 建立

$ git checkout dev # 切換

$ git branch可檢視所有分支及當前所在分支。

$ git checkout master# 切換到master

$ git merge dev # 將指定分支的內容融合到master上,即改變master的指標位置

$ git branch -d dev # 合併後可刪除dev分支

如果只有一條時間線,就可以執行「快速合併」操作,直接改變指標的位置即可。

但時如果建立出不同的時間線,多人對同一檔案都進行了修改,就可能產生合併衝突,需手動處理。

$ git status會告訴我們衝突檔案在**。

分支合併模式:

-fast forward模式:在合併分支時會丟掉分支資訊,也就是都看不見哪一次是分支上merge出來的。禁用fast forward模式命令為git merge --no-ff -m "merge with no-ff" dev。此時可以用git log查詢到merge歷史,否則看不到merge歷史。$ git log --graph命令可以看到分支合併圖。

Git學習筆記 基礎篇

git可以說是所有開發者出開發語言之外的最基本的基本功了,熟悉git可以方便的進行 版本控制,以及與其他開發者進行合作開發。本文內容是我以往學習git時做的筆記,主要是關於git最基本的操作,但 只要熟練掌握本篇內容,可以說採用git進行開發基本沒有問題了。1.git init 要對現有的某個專案開...

設計模式學習筆記(目錄篇)

為了方便檢視,特此將設計模式學習筆記系列單獨做乙個目錄。1 設計模式學習筆記 一 命令模式 2 設計模式學習筆記 二 觀察者模式 3 設計模式學習筆記 三 裝飾模式 4 設計模式學習筆記 四 策略模式 5 設計模式學習筆記 五 介面卡模式 6 設計模式學習筆記 六 責任鏈模式 7 設計模式學習筆記 ...

設計模式學習筆記 準備篇

1.設計模式的重要性 1.1 設計模式解決的是在軟體過程中如何來實現具體的軟體功能。實現同乙個功能的方法有很多,哪個設計容易擴充套件,容易復用,松耦合,可維護?設計模式指導我們找到最優方案。1.2 設計中往往會存在設計缺陷,這些缺陷包括 僵化性 難以對軟體進行改動,即使在功能上來看是很小的改動 脆弱...