1.初步了解Git
Git是一個開源的分布式版本控制系統(tǒng)袋哼,可以有效徐紧、高速地處理從很小到非常大的項目版本管理尖淘。 [1] Git 是 Linus Torvalds 為了幫助管理 Linux 內(nèi)核開發(fā)而開發(fā)的一個開放源碼的版本控制軟件。
1.1Git的功能特性:
從一般開發(fā)者的角度來看,git有以下功能:
1茴肥、從服務(wù)器上克隆完整的Git倉庫(包括代碼和版本信息)到單機上肢娘。
2、在自己的機器上根據(jù)不同的開發(fā)目的塌碌,創(chuàng)建分支渊胸,修改代碼。
3台妆、在單機上自己創(chuàng)建的分支上提交代碼翎猛。
4胖翰、在單機上合并分支。
5切厘、把服務(wù)器上最新版的代碼fetch下來萨咳,然后跟自己的主分支合并。
6疫稿、生成補杜嗨(patch),把補丁發(fā)送給主開發(fā)者遗座。
7舀凛、看主開發(fā)者的反饋,如果主開發(fā)者發(fā)現(xiàn)兩個一般開發(fā)者之間有沖突(他們之間可以合作解決的沖突)途蒋,就會要求他們先解決沖突猛遍,然后再由其中一個人提交。如果主開發(fā)者可以自己解決碎绎,或者沒有沖突螃壤,就通過。
8筋帖、一般開發(fā)者之間解決沖突的方法奸晴,開發(fā)者之間可以使用pull 命令解決沖突,解決完沖突之后再向主開發(fā)者提交補丁日麸。
從主開發(fā)者的角度(假設(shè)主開發(fā)者不用開發(fā)代碼)看寄啼,git有以下功能:
1、查看郵件或者通過其它方式查看一般開發(fā)者的提交狀態(tài)代箭。
2墩划、打上補丁,解決沖突(可以自己解決嗡综,也可以要求開發(fā)者之間解決以后再重新提交乙帮,如果是開源項目,還要決定哪些補丁有用极景,哪些不用)察净。
3、向公共服務(wù)器提交結(jié)果盼樟,然后通知所有開發(fā)人員氢卡。
1.2Git特點
優(yōu)點:
- 適合分布式開發(fā)強調(diào)個體。
- 公共服務(wù)器壓力和數(shù)據(jù)量都不會太大晨缴。
- 速度快译秦、靈活。
- 任意兩個開發(fā)者之間可以很容易的解決沖突。
- 離線工作筑悴。
缺點:
資料少(起碼中文資料很少)们拙。
學習周期相對而言比較長。
不符合常規(guī)思維阁吝。
代碼保密性差睛竣,一旦開發(fā)者把整個庫克隆下來就可以完全公開所有代碼和版本信息。
2.基礎(chǔ)的Git命令學習
2.1初始化倉庫
非系統(tǒng)盤非中文路徑求摇,建立一個文件夾learngit,如E:\learngit
-
命令行窗口殊者,通過如圖所示命令与境,進入該目錄,并通過git init命令猖吴,將該目錄初始化為一個git倉庫
image
2.2 向倉庫添加文件摔刁、提交文件
在learngit目錄中新建一個README.md文件
使用git add命令,將文件添加到倉庫
-
使用git commit命令海蔽,將文件提交到倉庫共屈,提交的時候要加說明! (commit之前一定要add)
image
2.3 查看倉庫狀態(tài)
-
可以使用git status命令,查看倉庫當前的狀態(tài)党窜,比如是都提交完了拗引,還是有一些add的文件尚未提交等
image
2.4 查看版本歷史記錄
-
可以用git log命令進行查看
image
2.5 穿越到任意一個版本
-
當我們需要穿越到任意在記錄中存在的版本去的時候,只需使用如下命令:
image
2.6 多文件提交
-
Git允許add多個文件幌衣,然后一次性通過commit來提交矾削,比如我們在learngit目錄加入一個圖片文件,再放入一個文本文件
image -
然后進行兩次add
image -
查看倉庫狀態(tài)并通過commit一次性提交兩個文件
image
3.Git學習總結(jié)
- git:查看系統(tǒng)有沒有安裝Git
- 設(shè)置全局屬性豁护,用戶名和郵箱
git config --global user.name "Your Name"
git config --global user.email “email@example.com” - git init:創(chuàng)建版本庫
- git add 文件名:將文件添加到臨時區(qū)
- git commit -m “create hello.txt file”:把文件提交到倉庫
- git status:查看當前的Git倉庫狀態(tài)
- git log:查看從近到遠的提交日志
- git log --pretty=online:簡略顯示
- git reset --hard HEAD:回退到上一版本
- git reset --hard commit_id:穿梭到指定版本號的版本
- git rm 文件名:刪除文件
- git config core.autocrIf true:當上傳所有文件時出現(xiàn)warning時輸入的命令
- git remote add origin git@github.com:yangbaby422/learngit.git:設(shè)置遠程倉庫
- git push -u origin master:將本地的master分支推送到origin主機的master分支