- 從無到有:如何將一個專案上傳到遠端倉庫
- 一、使用者認證
- 1. 生成 SSH 金鑰對
- 2. 將公鑰新增到 Gitee
- 3. 配置 SSH 代理
- 二、上傳
- 1. 在 Gitee 上建立倉庫
- 2. 初始化本地專案為 Git 倉庫
- 3. 新增檔案到 Git 倉庫
- 4. 新增遠端倉庫
- 5. 推送程式碼到遠端倉庫
- 一、使用者認證
- 從有拉取:如何從遠端倉庫拉取一個專案
- 1. 安裝 Git
- 2. 克隆遠端倉庫
- 3. 進入專案目錄
- 4. 檢視專案分支
- 5. 推送更新
- 本地與遠端衝突無法上傳,如何解決
- 預處理
- 1. 檢視衝突檔案
- 2. 手動解決衝突
- 3. 標記衝突已解決
- 4. 提交解決衝突後的更改
- 5. 再次嘗試推送程式碼
從無到有:如何將一個專案上傳到遠端倉庫
一、使用者認證
- 生成 SSH 金鑰對
- 將公鑰新增到 Gitee
- 配置 SSH 代理
- 重新嘗試推送程式碼
1. 生成 SSH 金鑰對
如果你還沒有生成 SSH 金鑰對,可以使用以下命令生成:
ssh-keygen -t ed25519 -C "your_email@example.com"
這將生成兩個檔案:
~/.ssh/id_ed25519
(私鑰)~/.ssh/id_ed25519.pub
(公鑰)
2. 將公鑰新增到 Gitee
-
開啟公鑰檔案:
cat ~/.ssh/id_ed25519.pub
-
複製公鑰內容。
-
登入 Gitee:開啟瀏覽器,訪問 Gitee 並登入你的賬戶。
-
新增 SSH 金鑰:
- 點選右上角的頭像,選擇“設定”。
- 在左側選單中選擇“SSH 公鑰”。
- 點選“新增公鑰”,貼上你複製的公鑰內容,並填寫一個標題(例如
My Laptop
)。 - 點選“確定”。
3. 配置 SSH 代理
-
啟動 SSH 代理:
eval "$(ssh-agent -s)"
-
新增私鑰到 SSH 代理:
ssh-add ~/.ssh/id_ed25519
將一個本地專案提交到 Gitee 上,假設 Gitee 上還沒有建立倉庫,可以按照以下步驟進行:
二、上傳
1. 在 Gitee 上建立倉庫
- 登入 Gitee:開啟瀏覽器,訪問 Gitee 並登入你的賬戶。
- 建立新倉庫:
- 點選右上角的“+”按鈕,選擇“新建倉庫”。
- 填寫倉庫名稱(例如
my-project
)、描述等資訊。 - 選擇倉庫的可見性(公開或私有)。
- 點選“建立”。
2. 初始化本地專案為 Git 倉庫
-
進入專案目錄:
cd /path/to/your/project
-
初始化 Git 倉庫:
git init
3. 新增檔案到 Git 倉庫
-
新增所有檔案到暫存區:
git add .
-
提交檔案到本地倉庫:
git commit -m "Initial commit"
4. 新增遠端倉庫
-
獲取 Gitee 倉庫的 URL:在 Gitee 上建立的倉庫頁面中,可以看到倉庫的 URL。例如,
https://gitee.com/username/my-project.git
。 -
新增遠端倉庫:
git remote add origin https://gitee.com/username/my-project.git
5. 推送程式碼到遠端倉庫
-
推送程式碼到遠端倉庫:
git push -u origin master
如果倉庫的預設分支名稱不是
master
,請替換為實際的分支名稱。例如,如果預設分支名稱是main
,則使用:git push -u origin main
從有拉取:如何從遠端倉庫拉取一個專案
從遠端倉庫(如 Gitee、GitHub 等)拉取一個已有的專案到本地。
1. 安裝 Git
確保你的計算機上已經安裝了 Git。如果沒有安裝,可以從 Git 官方網站 下載並安裝。
2. 克隆遠端倉庫
使用 git clone
命令將遠端倉庫克隆到本地:
-
開啟終端或命令列工具:
- Windows 使用者可以使用 Git Bash 或者命令提示符。
- macOS 和 Linux 使用者可以使用終端。
-
導航到你希望儲存專案的目錄:
sh cd /path/to/your/directory
-
使用
git clone
命令克隆遠端倉庫:-
假設遠端倉庫的 URL 是
https://gitee.com/username/repo.git
,使用以下命令:git clone https://gitee.com/username/repo.git
- 使用的是 SSH 方式(SSH方式預處理見第一部分),URL 會有所不同:
git clone git@gitee.com:username/repo.git
-
ps: 執行git clone
命令會自動執行git init
等一系列命令。
3. 進入專案目錄
克隆完成後,進入專案目錄:
```sh
cd repo
```
4. 檢視專案分支
-
檢視當前分支:
git branch
-
檢視所有的遠端分支:
git branch -r
-
此時,可以建立並切換到新的本地分支,並跟蹤遠端分支(儘量保證your_branchName和branchName 保持一致):
git checkout -b your_branchName origin/branchName
-
推送當前本地分支到指定分支:
git pull origin branchName
5. 推送更新
-
新增所有檔案到暫存區:
git add .
-
提交檔案到本地倉庫:
git commit -m "Initial commit"
-
推送程式碼到遠端倉庫:
git push -u origin branchName
本地與遠端衝突無法上傳,如何解決
假設你目前處於合併衝突的狀態,無法向遠端提交專案。
預處理
拉取最新的專案程式碼到一個臨時分支。
git checkout -b tmp-branch origin/master
切換回要提交的分支,假設為master。
git checkout master
嘗試將拉取的專案和本地專案融合。
git merge tmp-branch
1. 檢視衝突檔案
使用 git status
命令確認哪些檔案存在衝突:
git status
輸出應該類似於:
On branch master
Your branch and 'origin/master' have diverged,
and have 1 and 1 different commits each, respectively.
(use "git pull" if you want to integrate the remote branch with yours)
You have unmerged paths.
(fix conflicts and run "git commit")
(use "git merge --abort" to abort the merge)
Unmerged paths:
(use "git add <file>..." to mark resolution)
both modified: src/main/java/com/example/demo/Demo1Application.java
2. 手動解決衝突
開啟衝突檔案 src/main/java/com/example/demo/Demo1Application.java
,找到衝突標記(<<<<<<<
, =======
, >>>>>>>
),手動編輯檔案,刪除衝突標記,保留你希望保留的程式碼。
例如,衝突檔案可能看起來像這樣:
<<<<<<< HEAD
public class Demo1Application {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
=======
public class Demo1Application {
public static void main(String[] args) {
System.out.println("Hello, Gitee!");
}
}
>>>>>>> feature-branch
手動編輯檔案,解決衝突後,檔案可能看起來像這樣:
public class Demo1Application {
public static void main(String[] args) {
System.out.println("Hello, Gitee!");
}
}
3. 標記衝突已解決
使用 git add
命令將解決衝突後的檔案新增到暫存區:
git add src/main/java/com/example/demo/Demo1Application.java
4. 提交解決衝突後的更改
解決所有衝突後,提交更改:
git commit -m "Resolved merge conflicts"
5. 再次嘗試推送程式碼
解決衝突並提交更改後,再次嘗試將程式碼推送到遠端倉庫:
git push -u origin master