添加賬號
git config --global user.name "YourName"
git config --global user.email "your_email@example.com"
設置 Git 默認分支名稱為 main
:
git config --global init.defaultBranch main
初始化倉庫:
git init
配置SSH 密鑰
如果你使用 SSH 方式連接 GitHub,需要生成并添加 SSH 密鑰到 GitHub:
ssh-keygen -t rsa -b 4096 -C "your@email.com"
然后將 ~/.ssh/id_rsa.pub
中的內容復制粘貼到 GitHub 的 Settings > SSH and GPG keys 頁面。
初始化本地倉庫并上傳代碼
情況一:新建項目上傳到 GitHub
# 進入你的項目目錄
cd /path/to/your/project# 初始化 Git 倉庫
git init# 添加所有文件到暫存區
git add .# 提交更改
git commit -m "Initial commit"# 關聯遠程倉庫(HTTPS方式)
git remote add origin https://github.com/your-username/repo-name.git# 或者使用 SSH 方式(推薦)
git remote add origin git@github.com:your-username/repo-name.git# 推送代碼到 GitHub 主分支(main)
git push -u origin main
💡 如果你本地是
master
分支,而 GitHub 默認是main
,你可以重命名分支:
git branch -M main
情況二:已有 GitHub 倉庫,克隆到本地再提交代碼
# 克隆遠程倉庫到本地
git clone https://github.com/your-username/repo-name.git# 進入項目目錄
cd repo-name# 添加新文件或修改內容
# ...# 添加更改
git add .# 提交更改
git commit -m "Add new feature"# 推送到遠程倉庫
git push origin main
提交修改到本地(切換分支時候需要先執行這一步)
git add .
git commit -m "保存當前工作進度"
查看當前 Git 倉庫關聯的遠程庫
git remote -v
這個命令會列出所有與該倉庫關聯的遠程庫及其 URL。輸出結果通常看起來像這樣:
origin https://github.com/user/repo.git (fetch)
origin https://github.com/user/repo.git (push)
在這個例子中,origin
是遠程庫的名字,而 https://github.com/user/repo.git
是遠程庫的 URL。(fetch)
和 (push)
表明該遠程庫用于 fetch(拉取) 和 push(推送) 操作。通常情況下,你會看到同一個 URL 對應著 fetch 和 push 操作,但也可以配置不同的遠程庫分別用于這些操作。
如果你只想知道用于推送的遠程庫,可以專注于那些標注了 (push)
的行。例如,上面的例子顯示 origin
遠程庫被配置為向 https://github.com/user/repo.git
推送更改。
添加遠程庫
git remote add github git@github.com:ergevv/xxxxx.git
這個倉庫在電腦本地叫github
,指向的是github的倉庫。
git push github master
將本地的分支推送到github指向的git@github.com:ergevv/xxxxx.git
倉庫的master
分支。
推送到特定分支
- 查看當前分支
git branch
- 創建并切換到
main
分支
git checkout -b main
這會基于當前提交創建一個新的 main
分支,并切換過去。
- 設置遠程跟蹤(關聯遠程倉庫的 main 分支)
如果你確定遠程倉庫已經有main
分支,可以直接拉取:
git checkout -b main origin/main
創建一個新的本地分支 main,并讓它跟蹤遠程分支 origin/main(也就是你之前添加的遠程倉庫 github 的 main 分支),然后切換到這個新分支。
- 推送本地
main
分支到 GitHub 的main
git push github main
這樣就會把你的本地 main
分支推送到 GitHub 上的 main
分支了。
清理遠程的分支
git push github --delete master
刪除本地指向的倉庫:
git remote remove github
將本地的分支 dev/test 推送到 GitHub 上的遠程倉庫,并且希望它被推送到 遠程的 master 分支:
git push github dev/test:master
下載指定分支
- 命令格式:
git clone -b <分支名> <倉庫地址> <本地目錄名(可選)>
示例:從 GitHub 下載名為 dev/test
的分支:
git clone -b dev/test https://github.com/ergevv/xxxx.git
- 如果已經克隆了倉庫,但想切換到其他分支
cd path/to/project # 進入已克隆的項目目錄
git fetch # 獲取遠程所有分支信息
git checkout dev/test # 切換到指定分支
如果提示 Branch 'dev/mcapRecord' not found
,說明你需要先拉取遠程分支:
git fetch origin dev/test
git checkout -b dev/test origin/dev/test
fetch和pull的區別
git fetch
是 Git 中一個非常有用的命令,它主要用于從遠程倉庫獲取最新的信息和更新,但不會自動合并或修改你當前的工作目錄。具體來說,git fetch
的作用可以概括為以下幾個方面:
-
獲取遠程更新:
git fetch
會連接到指定的遠程倉庫,并拉取所有本地沒有的數據(如新的提交、分支等),但不會將這些更改自動合并到你的工作目錄中。- 這意味著你可以查看遠程發生了哪些變化,而不用擔心這些變化會直接影響你的工作。
-
更新遠程引用:
- 它會更新本地關于遠程分支的信息(即遠程跟蹤分支)。例如,如果你在遠程倉庫上有一個名為
origin/master
的分支,執行git fetch
后,Git 會確保你的本地origin/master
指向與遠程倉庫一致的位置。
- 它會更新本地關于遠程分支的信息(即遠程跟蹤分支)。例如,如果你在遠程倉庫上有一個名為
-
不改變本地分支的狀態:
- 與
git pull
不同,git fetch
不會嘗試合并或重新應用任何遠程的更改到你當前的分支。因此,它是安全的,尤其是在你不確定是否需要將遠程的更改合并到當前工作中時。
- 與
1. 查看遠程分支的變化
git fetch origin
- 執行上述命令后,你可以通過
git log
或git diff
來比較本地分支與遠程分支之間的差異。
例如,查看 master
分支與遠程 origin/master
的差異:
git log master..origin/master
git diff master origin/master
2. 更新遠程跟蹤分支
假設你想切換到一個新的遠程分支,但該分支尚未在本地存在:
git fetch origin dev/test
git checkout dev/test
- 這會確保本地有最新的
dev/test
分支信息,然后你可以安全地切換到這個分支。
3. 在合并之前檢查遠程更改
如果你想在實際合并之前查看遠程分支上的最新更改,可以先執行 git fetch
,然后手動決定如何處理這些更改(比如是否合并):
git fetch origin
# 現在你可以選擇是否以及如何合并
git merge origin/master
# 或者
git rebase origin/master