團隊協作的時候,要能夠時時刻刻取得最新的資料,就需要透過git pull來處理。
這時候的關係如下圖:
A下了commit,並且push到github之後,b要透過git pull去取得目前在github上最新資訊!
當然會有一種情況,就是B沒注意到A已經第二次的push到github上,而要直接再做push,如下圖所示:
這時候會被github拒絕,B還是必需做一次git pull然後merge後,才有辦法再重新push上去。
2017年5月23日 星期二
Git邊學邊記錄-推送分支到github
正常說,要把資料推到遠端主機,只要透過git push就可以,但是,那是在master的情況下才會直接下指令沒有問題!
但是當切換到分支的時候,要將分支push會發現出現錯誤訊息!
因為還要去指定到遠端數據庫的名稱才行!
所以我們就可以先使用git remote來做查詢。
查詢後會取得origin這遠端數據庫名稱!
接著就可以使用git push 遠端數據庫名稱 分支名稱來做推送
當然還可以透過git remote rename 原始數據庫名稱 新數據庫名稱來做改名
但是當切換到分支的時候,要將分支push會發現出現錯誤訊息!
因為還要去指定到遠端數據庫的名稱才行!
所以我們就可以先使用git remote來做查詢。
查詢後會取得origin這遠端數據庫名稱!
接著就可以使用git push 遠端數據庫名稱 分支名稱來做推送
當然還可以透過git remote rename 原始數據庫名稱 新數據庫名稱來做改名
2017年5月22日 星期一
Git邊學邊記錄-暫存資料git stash
暫存資料 git stash
當作業到一半的時候被臨時叫去支援其他事情,又不能把手邊寫一半的東西commit的話,就可以透過git stash來做暫存。
如下圖所示,一個文字檔編輯一半毎叫走。
所以透過 git stash去暫存,這時候開啟檔案會發現,稍早所編輯的部份資料消失了?
Git邊學邊記錄-標籤git tag
標籤 git tag
git本身提供了commit說明之外的另一個維度,『標籤』。
透過git tag可以替版本建立標籤說明,讓設計師更方便去記錄狀態!
因為都還沒有設置標籤,所以執行git tag之後,是什麼都沒有的狀態。
所以我們透過指令 git tag tagname來做設置
這時候會發現,出現了『v1』的資訊了!
如果需求切換到該版本的commit的話,那就可以直接透過git checkout tagname來切換
兩圖說明了切換版本的差異,v2的版本是有b.txt,v1則沒有。
如果對tag有說明的需求,可以透過git tag -am "說明" tagname來設置,再透過git tag -n來查詢。
如果想刪除掉tag的話,也可以透過 git tag -d tagname來處理,本身刪除tag不會影響到commit的資訊,這部份可用性較大。
Git邊學邊記錄-合併分支merge
合併分支git merge
在透過git branch建置分支之後,如果需要將版本再合併回來的時候,就可以執行git merge來做分支的合併。
在另篇文章中,我建置了一個『gbranch1』 的分支,修改之後,我要合併。首先,我會先調整指向『master』
git checkout master
接著,再執行git merge gbranch1
這樣子,就把分支跟主支的資料合併起來了!
此時的狀態是這樣的:
Git邊學邊記錄-建置分支branch
建置分支 git branch
建置分支主要是用於專案上,如果已完成的功能不想因為在debug的期間造成使用者受影響所做的動作!
透過git branch可以看到,最開始只有一個『* master』,那是因為沒有建置分支,所以只有一個主支流。
『*』代表目前所在支流處
接著,我們透過git branch 分支名稱 來建置一個分支
這時候再執行git branch會發現,多了一個剛才所建立的gbranch1了,但是『*』還是在master
我們可以透過git checkout 分支名稱來做切換
這時候再執行git branch查看!
此時的『*』已經移至『gbranch1』了!
這時候的狀態是這樣:
然後,當我們在分支的時候執行commit,就會變成這樣:
這是建構在master此時狀態下的分支,所以如果想回頭去看master當初的版本狀況,可以透過git checkout master來切換確認,待分支改版完成之後,再透過合併支流的方式來做整合即可。
Git邊學邊記錄-HEAD-查詢過去的記錄
master所指為目前的主要支流,HEAD可看成目前的索引值所在
這時候,如果有需求回頭看前版的狀態的話,就可以透過git checkout 節點辨視碼前四碼來將HEAD指向該版本。
透過git log查詢節點辨視碼(白框所示)
從這可以看到前四碼為『bc10』,且為『master』
執行git checkout bc10
這時候去開啟該檔案,已是當初commit的版本狀態了!
要再調整回來的時候,只雩要再執行git checkout master即可。
Git邊學邊記錄-建置gitHub遠端目錄
git New repository
註冊一個git帳號,如果是free的話,所開的遠端目錄都會是Public的,如果要Private的話,就必需是付費帳號。
所以如果是企業內部的開發網站的話,就建議付費,每月7美元。
遠端目錄的建置如下三圖,最後的網址部份是做git Clone的時候需要用到的。
Git邊學邊記錄-遠端目錄操作
2017年5月15日 星期一
Git邊學邊記錄-本地端基礎操作
設置git user.name與user.email
git config --global user.email "mail address"
git config --global user.name "your name"
設置之後再以git config --list確認是否設置成功。
對資料夾設置git
(三種方式連結)
切換目錄至該資料夾之後執行git init
執行之後會發現多了一個(master)的字樣,就代表成功了。
加入索引git add . 確認狀態git status
Untracked files即表示未加入索引(未執行git add)
這時候可以再執行git add b.txt來將b.txt也加入索引
寫入本地數據庫git commit -m '說明'
執行之後會看到建立訊息『create mode 100644 .....』
接著利用git status確認會顯示『nothing to commit ...』,因為我們已經執行commit了!
但是調整檔案之後再執行git status之後,會發現,有不一樣的訊息出現。
透過git log查詢記錄
建置.gitignore來設置忽略名單
touch .gitignore
透過vi編輯器將c.txt加入清單之後再執行git status
此時會發現,剩一個檔案了,c.txt被排除了。
如果要將某個副檔名的一次性的排除,也可以透過『*.txt』來處理。
如果要針對某個資料夾做排除,也可以透過『js\』即代表js這資料夾內所有資料皆被排除
連結為git提供針對排除檔案的設置
狀態還原git reset HEAD 檔名
不加檔名的話,就是全部待commit的全部還原資料還原 git checkout
還原工作目錄與索引git reset --hard
執行之後會不論是否已git add與否,通通還原至最後一版commit狀態
訂閱:
文章 (Atom)

















































