GitHub建立遠端儲存庫
本節指令
git remote
git remote -v
git remote add origin
git remote set-url --add origin
git push
git push -u
git push --all
git push --tags
一、從頭開始-新增遠端空白儲存庫、本地空白儲存庫
1.1 初始commit由本地建立
進入GitHub網站後,點選右上角「New Repository」
接著不勾選「Initialize this repository with a README」
這樣遠端儲存庫就建立好後,再來我們要將遠端儲存庫 clone下來:
# 不用先建r1同名資料夾
git clone https://github.com/[GitHub帳號]/r1.git
clone下來後,打開r1資料夾可以看到.git,表示已建立GIT版控
,
輸入git log
後並未有任何提交(commit)
版本,所以要在本地建版本:
cd r1
echo 1 > README.md
git add .
git commit -m "init"
# 上傳至遠端
git push origin master
也可使用git push -u origin master
若加了-u參數,下次pull時可以直接不指定分支,直接參照push的分支。
想查詢目前設定的遠端位置嗎?
# 只查詢遠端名稱
git remote
# 遠端詳細位置
git remote -v
接下來就可以在本地儲存庫開始開發你的程式了,開發方式就和之前本地操作一模一樣,
你可以新增檔案、修改檔案、將檔案git add
到暫存區、git commit
到本地儲存庫…
等,做任何的修改。
但要記得,這些修改都只是在本地
而已,遠端儲存庫並不曉得你已經修改了,
如果你覺得本地修改的差不多了,想要將本地版本上傳至遠端,再執行git push
就可以讓遠端也更新囉!
所以你會發現,GIT將版本提交(commit)與上傳端(push)兩個動作是分開的,
不會執行了git commit
就直接在遠端建立版本了。這個設計給GIT使用者
帶來了很大的好處,你可以在本地做任何的版本提交,當不滿意時,便可自由修改,
改到乾淨滿意後,再執行git push
上傳遠端,如果你是和別人共同作業,
別人就可以看到你整理過後簡潔易懂的提交版本,
而不是看到你改來改去一堆實驗性的分支或程式碼,讓和你合作的同事一頭霧水。
至於已提交過的版本如何修改呢?這個功能比較複雜些,
我把它獨立出一個章節來講解,在此先不多述~~
1.2 初始commit由遠端建立
和上一個方式不同,我們要直接在遠端儲存庫先建好版本(commit),再複製到本地。
一樣先點選右上角「New Repository」,接下來比較不一樣,
我要勾選「Initialize this repository with a README」,
至於要不要選取gitignore檔或license檔,就由你自己決定了。
接著一樣將遠端儲存庫clone下來本地:
# 不用先建r2同名資料夾
git clone https://github.com/[GitHub帳號]/r2.git
cd r2
切換進入r2資料夾後,可以看到.git表示已建立GIT版控
,
輸入git log
後也可以看到有一個提交(commit)
版本,
而且r2資料夾裡會多一個README.md檔:
git log
commit d61e8c215cbe29b63ed5d76702050ad226635101
Author: AMANI <[email protected]>
Date: Mon Oct 20 17:12:48 2014 +0800
二、將遠端已存在儲存庫,拷貝至本地空白儲存庫
若你在辦公室進行程式開發,並且上傳版本至GitHub,表示你已經有一個遠端儲存庫。
如果回家後想要將遠端儲存庫下載後持續開發,怎麼做?
如果您沒有遠端儲存庫,請上GitHub網站隨便Foke一個專案吧!(例如gitignore)
首先在家裡電腦執行以下指令:
# 不用先建同名資料夾
git clone https://github.com/[GitHub帳號]/[遠端repo名稱].git
cd [遠端repo名稱]
that's all,接下來你就可以在家裡繼續加班coding囉 > <~~
有沒有發現,方法就和之前新建一個帶有初始commit的儲存庫是一樣的。
三、將本地已存在的儲存庫(已有版控),上傳至遠端儲存庫
假設在本地有一個已經開發一段時間的GIT儲存庫,現在要上傳至遠端,怎麼做呢?
假設本地有一儲存庫如下:
mkdir r3
cd r3
git init
echo 1 > file1.txt
git add file1.txt
git commit -m "C1"
echo 1 > file2.txt
git add file2.txt
git commit -m "C2"
echo 1 > file3.txt
git add .
git commit -m "C3"
echo 1 > file4.txt
git add .
git commit -m "C4"
echo 1 > file5.txt
git add .
git commit -m "C5"
echo 1 > file6.txt
git add .
git commit -m "C6"
首先在GitHub網站建立一個沒有初始版本(commit)
的儲存庫,
也就是不勾選「Initialize this repository with a README」
接著將本地儲存庫上傳,但首先要先將本地與遠端儲存庫建立連結,
否則本地儲存庫不知道要上傳到哪裡去?
建立連結的方式要下git remote add
指令:
# 若是command line輸入:
git remote add origin https://github.com/[GitHub帳號]/r3.git
# 若是Git Shell輸入:
git remote set-url --add origin https://github.com/[GitHub帳號]/r3.git
建好後,你可以下git remote
來查詢遠端位置:
git remote -v
沒問題後,就可以將本地儲存庫上傳至GitHub囉:
git push origin master
※若您的程式有建立其他分支或是標籤,在
push
時,請改成以下指令:git push --all
git push --tags
四、將本地的程式專案(未建立版控),上傳至遠端儲存庫
如果你這幾年手邊有很多程式專案,一直沒有做版本控制,如果想要上傳至遠端儲存庫,怎麼做呢?
首先GitHub遠端建一空白儲存庫,不勾選「Initialize this repository with a README」:
接著當然將自己的程式專案建立Git版控囉:
cd my-project
git init
git add --all
git commit -m "init"
建好版控制後,就可以上傳遠端了:
# 若是command line輸入:
git remote add origin https://github.com/[GitHub帳號]/my-project.git
# 若是Git Shell輸入:
git remote set-url --add origin https://github.com/[GitHub帳號]/my-project.git
git push origin master