記錄單人工作模式下詳盡版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 設計中往往會存在設計缺陷,這些缺陷包括 僵化性 難以對軟體進行改動,即使在功能上來看是很小的改動 脆弱...