Git歷史
??Git 是由 Linux 之父 Linus Tovalds 為了更好地管理linux內核開發而創立的分布式版本控制軟件/配置管理軟件。
??于2005年以GPL發布。最初目的是為更好地管理Linux內核開發而設計。
Windows客戶端安裝
-
方式一
-
方式二
SVN Git對比
Git使用
本地倉庫創建
打開命令行工具,在任何目錄下創建一個Git倉庫目錄(你也可以使用已經存在的項目目錄),并定位到該目錄下。然后通過下面的命令將這個目錄初始化為一個Git倉庫
git status
git init
git add .
git commit –m “The first commit”
- 第一條查看當前倉庫中各個文件的狀態
- 第二條命令進行初始化,它會在當前目錄下創建一個包含所有元數據和倉庫變更歷史的.git隱藏目錄。后面所有針對這個代碼倉庫所做的操作,都會被Git記錄到這個目錄下,這樣完全不會破壞你本身代碼結構,使得整個項目更加整潔。
- 第三條命令的符號“.”告訴Git開始跟蹤并記錄當前目錄下所有文件變化。
- 最后一條命令則將當前目錄下的所有內容進行了一次提交,其中-m是message的意思,一般用來標識此次提交的內容變化信息。
本地倉庫處理
Log
git log命令可以查看以往倉庫中提交的日志。包括可以查看某個時間點以來,最近指定次數的提交,或是指定文件或目錄的變更歷史等。
git log
git log -3
版本回退
git reset --hard commit_id
分支處理
-
查看分支:git branch 創建分支:git branch <name> 切換分支:git checkout <name> 創建+切換分支:git checkout -b <name> 合并某分支到當前分支:git merge <name> 刪除分支:git branch -d <name>
Git中的分支與其他版本控制很像,但不同點在于Git中的任何一個分支都可以被取回到本地,也可以通過push與其他團隊成員共享。使用Git創建和使用分支非常方便,這樣開發人員就可以通過創建分支來進行試驗性的開發嘗試。如果嘗試失敗了,則可以將對應的本地分支丟棄,而如果成功了,則可以將本地分支與主分支進行歸并提交。
git branch <new branch name> <from branch>
git branch <new branch name>
遠程倉庫處理
對遠端代碼倉庫進行操作也是Git的核心功能。你可以通過push來發布你對遠程倉庫的更新,或使用pull來同步遠端代碼倉庫。通常情況下Git倉庫更多通過SSH協議來進行連接。
Remotes
通過remote命令可以給本地倉庫設置對應的遠程倉庫作為源或目標。
你所設置的遠程倉庫地址可以通過以下命令查詢:如果你是通過clone命令將一個遠程倉庫同步到本地的,那么默認的,它會顯示一個叫做“origin”的遠程庫。
git remote -v
使用下面的命令來添加遠程倉庫
git remote add <remote name> <remote address>
Push
Push命令可以將本地的代碼倉庫變更推送到遠程倉庫中。
git push <remote name> <branch name>
git push <remote name> <local branch name:remote branch name>
像這樣執行git push命令,你能就將當前本地分支的內容推送給遠程倉庫的指定分支,一般情況下是origine的master分支。完成推送以后,其他具有權限的人就可以獲取到你的更新了。
Pull
Pull命令實際上包含了兩個操作,首先是獲取(fetching)遠程倉庫的內容,然后與本地倉庫的內容與提交歷史作自動的歸并操作。
git pull
Fetch
另一種同步方式是使用Fetch命令將遠程倉庫內容放入本地緩存,接著你可以對獲取的內容進行檢查評估,然后人工進行歸并操作。
git fetch <remotename>
git merge <remotename/branchname>
pull = fetch + merge
沖突處理
問題整理
git clone 時顯示Filename too long的解決辦法
在Git bash中,運行下列命令: git config --global core.longpaths true
--global是該參數的使用范圍,如果只想對本版本庫設置該參數,只要在上述命令中去掉--global即可。
加載私匙
-
linux
命令 "ssh-add 私匙文件路徑"
-
windows
打開git Bash命令行,
依次執行以下命令:
ssh-agent bash
ssh-add "C:\Users\Administrator.ssh\id_rsa"
引號中的路徑就是你私匙文件的路徑,路徑需要使用英文雙引號包裹。需要注意的是在git add 之前執行一條 "ssh-add -D" 命令,這是用來清除已有的私鑰。