一、為什麼要了解git
git是一套版本管理系統。看到「git版本管理」,一大部分盆友已經轉身想走,在你握著門把手準備開門走人時,請最後聽我說完最後一句:人人都需要版本管理,git可以幫你少交停電/藍屏/宕機稅,提高產出效率,不來一發嗎?
試過半夜寫匯報ppt嗎?'匯報ppt'→'匯報ppt1'→'匯報ppt11'→'匯報ppt2015-03-17'→'匯報ppt2015-03-17新'→'匯報ppt2015-03-17新1'……無休止的命名鬥爭,這就是自然而然的版本管理,只不過,沒有好的工具,所以顯得一團mess。
來吧,fork有用有趣的東西,git你應該在意的東西,日拱一卒,打造我們的作品。
二、git主要概念
git實現在本地和遠端進行版本管理。
1.工作空間
四個空間概念:工作目錄(workspace),暫存區(index),本地倉庫(local repository),遠端倉庫(remote repository)
想象一下,我們開乙個包子店(做的不是同一款包子,見諒)~
配合下面這張圖,我們對git就有乙個基本概念了。
git系統的實質更像是一棵大樹,樹幹(就是head啦)是最後一次提交的成果。在樹幹上,你可以開無數的分支(就是branch啦)胡弄,弄亂了也不怕,大不了剪掉再開乙個,樹幹不受任何影響。折騰ok的分支,最後可以merge到預設branch也就是master上。
用技術性語言描述,分支用來將特性開發絕緣開來。在建立倉庫的時候,master 是「預設的」分支。在其他分支上進行開發,完成後再將它們合併到主分支上。
那origin又是什麼?origin是遠端預設的倉庫。clone完成之後,git會自動將遠端倉庫命名為origin。
那head和master又是什麼關係?head其實只是個指標,指向當前最近commit的branch。而master是本地預設的branch,所以head經常都是指向master。另外head是官方定義的,而master和origin都是大家常用的命名,並不一定要叫master和origin。[2]
3.工作流:add & commit & push
git的好處之一是,包子包好後,還可以回退……
三、配置
1.工作目錄
2.本地倉庫
3.遠端倉庫
四、常用命令
最常用:git command --help
1.建立
需要進入目標目錄進行操作
2.查詢
git status
staging area:commit前把檔案們收集到一起,以便打包commit。
3.add/新增
4.commit/提交
"commit" 可以理解為一次快照,幫助我們把所有改動以timeline的方式組織起來。
5.push/推送
將檔案推送到遠端倉庫中:git push -u origin master。遠端倉庫預設叫origin。-u 告訴git記住引數,下次可以直接使用push。
6.pull/拉取
更新本地倉庫至最新改動:git pull origin master
7.checkout/切換
checkout命令用於從歷史提交(或者暫存區域)中拷貝檔案到工作目錄,也可用於切換分支
8.diff/比對
git diff
9.reset/撤銷
10.merge
合併其他分支到當前分支:git merge
11.remove & clean
五、待解決問題
Git 移除檔案版本控制
發現遠端倉庫中的.idea下有2個檔案,而.idea資料夾已經在.ignore中忽略了 所以現在要撤銷對這兩個檔案的版本控制 展示要刪除的檔案表預覽 git rm r n cached idea rm idea misc.xml rm idea modules.xml git rm命令引數解釋 執行...
git如何移除某檔案的版本控制
1 還沒有加到版本控制中 1 還沒有git add 在 gitignore中新增 2 已經git add 先 git rm r cached 檔案 在 gitignore中新增 2 已經加到版本控制中 先 git rm r cached 檔案 在 gitignore中新增 最後 gti commit...
git移除資料夾的版本控制
案例背景 git提交的時候把bin檔案下的各種.dll提交上去了,然後每次提交都得提交好多檔案,很容易忽略你真正修改的東西,故對這些不必要的東西忽略掉 解決方案 git rm 命令引數 具體實施 1.執行git rm r n cached bin 此命令是展示要刪除的檔案表預覽 2.執行git rm...