Git安裝&配置&版本控制&github提交下載

git下載

到官方網站下載,如果下載速度太慢,可以F12找到a標籤的href複製到迅雷進行下載,其他外國軟件均可參考這個步驟。

##初始化git 我們默認安裝的是linux命令的bash,所以適用所有linux命令。在初始化git時,我們首先選擇本地倉庫的文件夾,右鍵git bash進入bash頁面,執行 git init 命令:

1

執行完成後我們的GitTest文件夾中還是空的,我們執行 ls -lA 可以看到: 2

在linux中以“.”開頭的文件表示隱藏文件。我們看一下.git/裏面有什麼: 3

.git目錄中放的是本地倉庫相關子目錄和文件,不能刪除和修改。

##設置簽名 簽名的形式:

用戶名:malaganguo
密碼:[email protected]

簽名的作用:區分不同開發人員的身份,且郵箱不做驗證。

辨析:這裏設置的簽名和代碼託管中心的賬號密碼沒有任何關係。

設置簽名的命令:(優先級採用就近原則)

  1. 項目級別/倉庫級別:當前本地倉庫有效 2.1
  2. 系統用戶級別:當前操作系統登錄用戶範圍
git config --global user.name admin
git config --global user.email [email protected]

我們來看一下保存在config中的pro簽名: 2.2

global簽名保存在“~”目錄中: 2.3

##基本操作 指令:git status

如果裏面沒有文件會提示:

malaganguo@malaganguo MINGW64 /e/workspace/GitTest (master)
$ git status

On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)

###有文件的話會有兩種顏色的顯示:

紅色表示未添加到暫存區,需要使用git add 文件全名指令;

綠色表示已經添加進緩存區,但是沒有提交或者已經做了修改,處於此狀態的文件需要執行git commit 文件全名才能提交。(使用git命令提交併添加註釋git commit -m "註釋內容" 文件全名2.4

在執行完git commit 命令提交到本地庫後會顯示提交的信息,master表示當前位置,root-commit表示第一次提交first commit.new file gitnote.md hello.txt是提交時vim首行添加的註釋(很顯然註釋寫錯了),1 file changed,1 insertion(+):一個文件變化,新添加一行。

####總結:git操作步驟 ①git status 指令查看當前項目倉庫的文件的狀態

②對於需要git管理的使用 git add 文件全名 添加到git的,此時文件同時存放在git的緩存區中還未提交。

③對於需要提交到git中的文件,我們使用git commit 文件全名來提交文件到git中

##怎樣實現版本的前進/後退(版本穿梭)

首先查看git日誌,找到需要穿梭的節點

git log       查看日誌
git log --pretty=online     簡潔查看日誌
git log --online  縮短簡潔顯示的hash值
git reflog    可以看到移動到當前版本需要多少步

2.5

HEAD是git管理的指針名字,方便我們引用以實現版本前進/回退,版本管理實質上是對指針的操作

###基於索引值(hash)版本穿梭

 

###使用“^”或“~”回退

git reset --hard HEAD^^^後退三個版本,後退幾個版本就有幾個“^”。 問題是如果後退的太多,就比較難表達了,我們使用“~數字來後退”,git reset --hard HEAD~3同樣爲後退三個版本。

reset明令除了hard參數外還有soft、mixed參數,soft參數僅僅再本地庫移動指針,不懂暫存區和工作區;mixed在本地庫重置HEAD指針,重置暫存區;hard是三個都改變了

###刪除文件並找回

前提:刪除前,文件存放時的狀態提交到了本地庫

操作:git reset --hard[指針位置]

###比較文件差異

git diff 文件全名將工作區和暫存區進行比較 git diff 本地庫歷史版本 文件全名工作區和歷史版本比較

不加文件全名可以進行所有比較

2.7

##分支開發

提高迭代效率,模塊化開發,開發完成後合併主幹。某一個分支開發失敗不會影響其他分支,方便於SVN的分支。

3.1

###分支合併

①切換到被合併分支中git checkout 被合併分支名 ②用git merge 待合併分支名

####合併產生衝突

兩個分支對同一文件的同一位置做了不同的修改,現在合併時就會產生合併衝突。

衝突的解決辦法:

  1. 等號前的是當前分支,後面的是合併分支,把不要的版本刪除就行了。
  2. add
  3. 解決完衝突後,文件變成了modified狀態,需要commit,不能帶文件名,這樣纔算解決了衝突。

##Hash

hash是一種加密方式。明文轉變爲祕文。不侷限於文本。

##遠程github

登錄github -> new repository ->複製https的url

###給url起別名 git remote add origin https://github.com/malaganguo/test225.git origin就是https://github.com/malaganguo/test225.git的別名 5.1

git remote -v 查看託管倉庫

###從本地倉庫推送到github倉庫 git push origin master 把master分支推送到origin中

###從網絡倉庫clone項目

5.2

5.3

可以看到,在執行完clone指令後已經再本地複製了一份git項目

#Q&A git 無法添加文件夾下文件

google後發現可能是該子文件夾下有.git文件夾導致無法上傳。

刪除子文件夾下.git後,依然無法提交子文件夾下的文件。

繼續google,

嘗試以下方法:

 git rm --cached directory
 git add directory
注:directory爲子文件夾的路徑。
但是執行git rm --cached directory時,提示

fatal: Unable to create 'xx/.git/index.lock': File exists.
執行rm -f xx/.git/index.lock後解決
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章