Git入門學習小結

2021-09-13 21:44:11 字數 3221 閱讀 8276

安裝完成後,還需要最後一步設定,在命令列輸入:

$ git config --global user.name "your name"

$ git config --global user.email "[email protected]"

因為git是分布式版本控制系統,所以,每個機器都必須自報家門:你的名字和email位址。你也許會擔心,如果有人故意冒充別人怎麼辦?這個不必擔心,首先我們相信大家都是善良無知的群眾,其次,真的有冒充的也是有辦法可查的。

初始化乙個git倉庫,使用git init命令。

新增檔案到git倉庫,分兩步:

使用命令git add ,注意,可反覆多次使用,新增多個檔案;

使用命令git commit -m ,完成。

要隨時掌握工作區的狀態,使用git status命令。

如果git status告訴你有檔案被修改過,用git diff可以檢視修改內容。

head指向的版本就是當前版本,因此,git允許我們在版本的歷史之間穿梭,使用命令git reset --hard commit_id。

穿梭前,用git log可以檢視提交歷史,以便確定要回退到哪個版本。

要重返未來,用git reflog檢視命令歷史,以便確定要回到未來的哪個版本。

用git diff head -- file命令可以檢視工作區和版本庫裡面最新版本的區別

git checkout -- file可以丟棄工作區的修改

命令git reset head file可以把暫存區的修改撤銷掉(unstage),重新放回工作區

要關聯乙個遠端庫,使用命令git remote add origin git@server-name:path/repo-name.git;

關聯後,使用命令git push -u origin master第一次推送master分支的所有內容;

此後,每次本地提交後,只要有必要,就可以使用命令git push origin master推送最新修改;

git鼓勵大量使用分支:

檢視分支:git branch

建立分支:git branch

切換分支:git checkout

建立+切換分支:git checkout -b

合併某分支到當前分支:git merge

刪除分支:git branch -d

當git無法自動合併分支時,就必須首先解決衝突。解決衝突後,再提交,合併完成。

解決衝突就是把git合併失敗的檔案手動編輯為我們希望的內容,再提交。

用git log --graph命令可以看到分支合併圖。

git log --graph --pretty=oneline --abbrev-commi

git分支十分強大,在團隊開發中應該充分應用。

合併分支時,加上--no-ff引數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併,而fast forward合併就看不出來曾經做過合併。

修復bug時,我們會通過建立新的bug分支進行修復,然後合併,最後刪除;

當手頭工作沒有完成時,先把工作現場git stash一下,然後去修復bug,修復後,再git stash pop,回到工作現場。

開發乙個新feature,最好新建乙個分支;

如果要丟棄乙個沒有被合併過的分支,可以通過git branch -d 強行刪除。

多人協作的工作模式通常是這樣:

1.首先,可以試圖用git push origin

推送自己的修改;

2.如果推送失敗,則因為遠端分支比你的本地更新,需要先用git pull試圖合併;

3.如果合併有衝突,則解決衝突,並在本地提交;

4.沒有衝突或者解決掉衝突後,再用git push origin

推送就能成功!

如果git pull提示no tracking information,則說明本地分支和遠端分支的鏈結關係沒有建立,用命令git branch --set-upstream-to

origin/

。多人協作的工作模式通常是這樣:

首先,可以試圖用git push origin

推送自己的修改;

如果推送失敗,則因為遠端分支比你的本地更新,需要先用git pull試圖合併;

如果合併有衝突,則解決衝突,並在本地提交;

沒有衝突或者解決掉衝突後,再用git push origin

推送就能成功!

如果git pull提示no tracking information,則說明本地分支和遠端分支的鏈結關係沒有建立,用命令git branch --set-upstream-to

origin/

。檢視遠端庫資訊,使用git remote -v;

本地新建的分支如果不推送到遠端,對其他人就是不可見的;

從本地推送分支,使用git push origin branch-name,如果推送失敗,先用git pull抓取遠端的新提交;

在本地建立和遠端分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠端分支的名稱最好一致;

建立本地分支和遠端分支的關聯,使用git branch --set-upstream branch-name origin/branch-name;

從遠端抓取分支,使用git pull,如果有衝突,要先處理衝突。

rebase操作可以把本地未push的分叉提交歷史整理成直線;

rebase的目的是使得我們在檢視歷史提交的變化時更容易,因為分叉的提交需要三方對比。

命令git tag 用於新建乙個標籤,預設為head,也可以指定乙個commit id;

命令git tag -a -m "blablabla..."可以指定標籤資訊;

命令git tag可以檢視所有標籤。

命令git push origin 可以推送乙個本地標籤;

命令git push origin --tags可以推送全部未推送過的本地標籤;

命令git tag -d 可以刪除乙個本地標籤;

命令git push origin :refs/tags/可以刪除乙個遠端標籤。

在github上,可以任意fork開源倉庫;

自己擁有fork後的倉庫的讀寫許可權;

可以推送pull request給官方倉庫來貢獻**。

**關聯github之後,只要本地作了提交,就可以通過命令:

$ git push origin master 把本地master分支的最新修改推送至github

參考廖雪峰git入門教程

Git 學習小結

git是目前最先進的分布式版本控制系統。所謂的分布式,是相對於集中式而言的,比如svn就是集中式的版本控制系統。集中式,顧名思義,就是擁有一台處於中心地位的伺服器,上面存放著版本庫。可以想象成網路裡的c s結構。同樣的,分布式就可以理解成p2p結構,沒有特定的伺服器,每台電腦都可以擁有版本庫,這樣就...

git學習小結

學習了廖雪峰老師的git教程,自己也想根據自己的理解做一些總結,以便初學者快速學習。git是分布式版本控制系統 一.git安裝 1.在ubuntu,debian 通過sudo apt get install git 就可以直接安裝 老一點的debian和ubuntu 用sudo apt get in...

Git學習小結

看了廖雪峰老師關於 git 的部落格 收穫還蠻多,需要記得東西比較多,所以寫篇部落格回顧一下學到的東西。git clone 你想要複製的倉庫位址 從遠端複製倉庫 git init 新建倉庫 git add 檔名稱 提交此檔案到暫存庫 git add 提交工作目錄下所有變動的檔案到暫存庫 git st...