場景
- 高頻場景:
- github新建repo
- 從github克隆該倉庫
git clone xxx
之後的commit/push/pull
等操作都很簡單。
- 但我的場景是這樣:
- 本地先init一個git代碼倉庫。新增一些代碼文件並提交到本地倉庫。
- github新增repo。
- 想“關聯”本地倉庫和遠程倉庫。以後本地倉庫可以push到指定的遠程倉庫。
涉及到分支合併
。
核心命令
git pull [email protected]:wuyujin1997/test-babel.git master --allow-unrelated-histories
git push -u [email protected]:wuyujin1997/test-babel.git master
具體步驟見下。
命令
以下命令中,我在github新建的倉庫地址[email protected]:wuyujin1997/test-babel.git
。
# 新建本地工作空間 workspace
mkdir test01
cd test01
# 初始化本地工作空間(workspace)爲本地倉庫(repository)
git init
# 之後可以看到,當前目錄下多了一個 .git/ 目錄,這裏面,保存的是本地倉庫中文件的歷史版本信息。
# 然後新增一些代碼,提交到本地倉庫。
# 1. 新增一些文件……
# 2. 添加到index(暫存區)
git add .
# 3. 提交到本地倉庫
git commit -m "這是註釋內容"
# 4. 查看提交內容(可省略本步驟)
git log
# 查看本地倉庫分支(確保有master這個分支,只要提交過代碼,就有默認的master分支)
git branch --list
# 去github(或其他git遠程倉庫服務器)新建一個repo。照例寫一些文件,提交。
# 接下來要做的事:
# 1. 拉取遠程倉庫的代碼,到本地。
git pull [email protected]:wuyujin1997/test-babel.git master --allow-unrelated-histories
# 格式: git pull 要推送的目的地址 本地倉庫分支名
# 注意加最後的參數,不然會報錯:拒絕合併不相關的歷史記錄(fatal: refusing to merge unrelated histories)
# 2. 查看本地目錄(可以看到遠程倉庫中的文件已經添加到本地倉庫及本地倉庫中)。
ls # Windows 環境爲 dir
# 3. 本地開發。加代碼……
# 4. 推送代碼到遠程(當然是先通過 git add . 和 git commit -m "提交消息" 提交到本地倉庫之後)。
git push -u [email protected]:wuyujin1997/test-babel.git master
# 格式: git push 要推送的遠程倉庫地址 本地倉庫分支名
# 注意 -u 參數僅第一次push使用即可。之後push可以不用。
第4步,push,之後會重複操作很多次。
現在有個問題,每次push都需要複製這段地址?那也太麻煩了 。
程序員不會樂意做這樣重複、無意義的事的(尤其是大神 Linus Torvalds )。
如果git遠程倉庫的地址有一個別名alias|shortname
就好了。
有的,如何設置?
# 先查看本工作目錄下的代碼倉庫 有沒有遠程倉庫信息
git remote show
# 如果沒有,執行以下
git remote add origin [email protected]:wuyujin1997/test-babel.git
# 格式: git remote add <shortname> <url>
# 再次查看(這次應該可以看到origin)
git remote show
git remote show origin
在這之後,本工作空間下,執行git命令,可以使用剛纔定義的別名 origin
代替那一串URL。
可以起名爲origin
,自然也可以叫別的名字。自己去測試。
推薦
推薦一開始就使用git clone <url>
克隆遠程倉庫到本地倉庫。
之後要push
可以省略參數,直接git push
完成,多好(默認會推送本地倉庫的當前分支到遠程倉庫的master分支)。