3. git的安裝與配置
3.2. 安裝git
3.3. 定製git環境
3.4. 設定別名
4. git 基礎
5. 合併分支時衝突解決
git
git是乙個版本控制工具,是為了更好好的幫助程式設計師進行版本控制以及協同開發。
github
是乙個面向開源及私有軟體專案的託管平台。因為只支援git 作為唯一的版本庫格式進行託管,故名github。
版本控制是一種記錄乙個或若干檔案內容變化,以便將來查閱特定版本修訂情況的系統。安裝包直接安裝,一步步走即可,會自動配置環境變數,否則自己在path中新增環境變數。
git 自帶乙個git config 的工具來幫助設定git外觀和行為的配置變數。這些變數儲存在三個不同的位置。
/etc/gitconfig
該檔案包含了適用於系統所有使用者和所有庫的值。
~/.gitconfig
該檔案在使用者目錄下,是針對使用者的配置。
.git/config
該檔案在具體專案中的乙個隱藏資料夾.git中。是針對該項目的具體配置。
安裝好git後,需要設定自己的使用者名稱和郵箱位址。每次git提交都會使用該資訊。
#設定提交人的資訊,只對以後的提交生效,如果沒有--global選項,則只是在該專案中生效。
$ git config --global user.name "yourname"
$ git config --global user.email [email protected]
對於比較複雜的命令,可以設定別名,方便記憶以及操作。對於git commit -m message
來說,該命令顯得有些難記,不想敲那麼多字,可以通過設定別名來簡化命令。
$ git config --global alias.cm 'commit -m'
$ git cm message
配置好設定後,可以在使用者目錄下的在本地的已有專案中匯入所有檔案到git中。.gitconfig
檔案中檢視,其中配置如下:[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-qrcx2mwm-1573130895932)(./1531186114453.png)]
$ git init
從git倉庫轉殖乙個專案到本地。
$ git clone url
git 支援多種協議,https://協議,git://協議,ssh 協議
# 生成乙個檔案
$ echo
"#notes"
>> readme.md
$ git status
# 跟蹤新檔案,git add 後面如果是路徑則遞迴的追蹤
$ git add readme.md
# 追蹤當前路徑下所有檔案
$ git add .
# 追蹤所有檔案
$ git add *
有時候不小心多新增(add)了一些檔案,想要取消新增,則可以使用以下命令阿里取消暫存檔案!
# 取消暫存檔案,即不提交該檔案
$ git reset head
$ #移除檔案 -f 強制刪除
$ git
rm stdout.log
$ #移動檔案(可以用來修改名稱)
$ git
mv filefrom fileto
$ #檢視日誌
$ git log
$ #提交更新
$ git commit -m "commit message"
$ #只要加上-a選項,git 會自動將已追蹤檔案暫存並提交,從而跳過 git add這一步。
$ git commit -a -m "commit message"
#帶有 --amend 的命令會嘗試重新提交,第二次提交的會覆蓋原來的提交資訊,最終只有乙個提交。
$ git commit --amend
#將本地倉庫推送為遠端倉庫
$ git remote add origin
#將本地修改推送到遠端倉庫的master分支
$ git push origin master
# 切換分支
$ git checkout branch-a
# 建立分支並切換
$ git checkout -b branch-b
# 只建立分支,不切換
$ git branch branch-c
# 更新分支
$ git pull origin 當前分支
# 合併分支,將branch-d分支合併到當前分支上
$ git merge branch-d
# 合併後需要推送到遠端
$ git push origin 當前branch
$ git fetch
# 更新指定分支到本地
$ git fetch origin 分支名稱
git pull 可以理解為 git fetch + git merge即git fetch 直接拉取分支,git pull 拉取分支並自動合併,git fetch +git merge 有可能會產生衝突,需要手動解決。
git在當前分支有修改並且未提交的內容時,是不允許切換分支的,但是如果此時並不想將改了一半的內容提交怎麼辦?可以使用git的儲藏功能,將修改內容儲藏,這樣便可以切換到其他分支,操作完成後在返回到該分支恢復儲藏即可。
# 將修改內容儲藏,儲存當前的工作現場
$ git stash
# 檢視現有 stash
$ git stash list
# 恢復儲藏內容,並刪除該儲藏
$ git stash pop stash@
.gitignore檔案,記錄著不交由git來管的檔案,即不提交的檔案,一般為日誌檔案,target檔案等。
但是在專案初期,並沒有建立.gitignore檔案,後期發現有些檔案根本不需要提交,新建立乙個.gitignore檔案,或者是在.gitignore檔案中後加上的忽略檔案,這時候這些檔案已經提交了,這時候建立的.gitignore檔案規則對於這些 tracked 檔案無效。
其實.gitignore檔案只會忽略那些沒有被 track(追蹤)的檔案,這時候如果需要取消追蹤這些檔案,可以執行以下命令,從快取中刪除對該檔案的追蹤,例如:
$ git rm --cached -r .idea
git rm --cached 與 git rm 的區別git rm 刪除快取區的檔案,同時工作區也不需要這個檔案的時候,可以使用 git rm,例如過時的檔案
git rm --cached 停止追蹤檔案,但是工作區還需要這些檔案,例如 .idea 資料夾,此時可以使用 git rm --cached 命令
$ git fetch -a 同步遠端分支到本地
$ git branch -d
(刪除本地分支)
$ git push origin --delete
$ git fetch -p(刪除沒有對應遠端的本地分支)
分支之間不要用拷貝的方式來共享檔案,如果分支間需要有共享的檔案,可以使用merge的方式來合併分支。可是如果多個人對同乙個檔案的同乙個地方進行了修改,則會出現衝突報錯,此時需要做的便是解決衝突,重新提交。
$ git merge master(將master合併到當前分支)
解決衝突問題。如果發現git鎖死不能提交,則需要刪除記錄檔案。此步驟不是必須的
$ cd .git
$ rm merge_head
$ git add .
$ git commit -m "合併master,解決衝突"
$ git push origin branch
progit2.pdf Git常用命令總結
原文 author joseph lee e mail fdlixiaojun gmail.com 基礎概念 git是分布式版本控制系統,在每個主機上都儲存這版本庫的完整映象,這於cvs,svn 等集中式版本控制系統不同,集中式版本控制系統僅是在伺服器上儲存有所有資訊。git檔案更改後是以快照的方式...
git常用命令總結
一 分支新建與切換 git中的分支,本質上僅僅是個指向 commit 物件的可變指標。1 新建乙個分支 比如新建乙個名為testing的分支 git branch testing 即是在當前commit物件上新建了乙個分支指標 注 head指向當前所在的分支,用cat git head可以檢視 2 ...
git常用命令總結
檢查git 是否安裝 git 新增git 個人資訊 git config global user.name your name git config global user.email email example.com 建立乙個版本庫 mkdir learngit 建立乙個空目錄 cd learn...