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

results matching ""

    No results matching ""