一、前言
暫時空著...
二、git
2.1 可能的疑問
1. VSCode 項目名和 GitHub 倉庫名是否需要一致?
不需要一致。 VSCode 項目名(也就是你本地的文件夾名字)和 GitHub 倉庫名可以不一樣。 Git 是一個分布式版本控制系統,它主要關注的是你本地倉庫與遠程倉庫之間的連接和同步,而不是文件夾的名字。
-
沒有直接影響。 你可以正常地將本地倉庫連接到任何遠程 GitHub 倉庫,無論名字是否相同。
-
建議保持一致以方便管理。 為了方便自己和其他協作者理解項目,建議盡量讓本地項目文件夾名和 GitHub 倉庫名保持一致。 這樣可以更容易地從文件夾名字就能判斷出對應的 GitHub 倉庫,尤其是在你同時管理多個項目的時候。
2. origin
是什么?可以寫成其他的嗎?
-
rigin
是遠程倉庫的別名 (alias)。 當你運行git remote add origin <repository_url>
的時候,origin
就代表了你指定的遠程倉庫的 URL。 -
origin
可以寫成其他的名字。 你可以選擇任何你喜歡的名字作為遠程倉庫的別名。 比如,你可以將遠程倉庫命名為github
、upstream
、remote
等等。 -
如何更改遠程倉庫的別名?
-
重命名已存在的遠程倉庫:
git remote rename origin <new_name>
-
例如:
git remote rename origin github
-
-
添加遠程倉庫時使用其他名字:
git remote add <new_name> <repository_url>
-
例如:
git remote add github https://github.com/your_username/your_repo.git
-
-
-
origin
的約定俗成:-
雖然你可以隨意命名,但是
origin
已經成為一種約定俗成的做法。 大多數開發者都習慣使用origin
來代表主要的遠程倉庫,特別是你 fork 別人的項目后,會再添加一個upstream
指向原始倉庫,方便同步更新。
-
三、Github
3.1?初始化 Git 倉庫:
-
打開 VSCode 的終端 (View -> Terminal)。
-
運行
git init
命令。 這將在你的項目目錄中創建一個新的 Git 倉庫。
3.2?將本地倉庫連接到 GitHub 倉庫
-
復制你剛在 GitHub 上創建的倉庫的 HTTPS 或 SSH URL。 你可以在 GitHub 倉庫頁面的 "Code" 按鈕下找到這個 URL。
-
在 VSCode 終端中運行
git remote add origin <your_repository_url>
命令,將<your_repository_url>
替換為你復制的 URL。 例如:
git remote add origin https://github.com/your_username/your_private_repo.git
3.3?將代碼上傳到 GitHub
1.?添加文件到暫存區:
-
在 VSCode 中創建你的項目文件 (例如:
main.py
,index.html
等)。 -
運行
git add .
命令將所有文件添加到暫存區。 或者,你可以使用 VSCode 的 "Source Control" 視圖中的 "+" 按鈕來添加單個文件。
2.?提交更改:
運行 git commit -m "Initial commit"
命令提交你的更改。 將 "Initial commit"
替換為描述本次提交的更有意義的消息。
3. 查詢本地分支的名字
git brach
如果是* master,
git branch -m master main
變成 *main
4.?推送到 GitHub:
運行 git push -u origin main
命令將你的本地倉庫推送到 GitHub 倉庫。
-
-u
選項設置 upstream tracking,這樣以后你只需要運行git push
就可以推送更改了。 -
origin
是你遠程倉庫的名稱(通常是 "origin",你之前使用git remote add
命令設置的)。 -
main
是你想要推送到的分支名稱(通常是 "main" 或 "master")。 -
你可能會被要求輸入你的 GitHub 用戶名和密碼
該錯誤表示遠程分支 main 具有本地分支沒有的提交。您有兩個主要選項:
首先合并遠程更改:
遠程倉庫已經存在 main
分支,但是你的本地倉庫和遠程倉庫的代碼不同步。 錯誤提示 Updates were rejected because the remote contains work that you do not have locally.
意味著遠程倉庫 main
分支上有一些你本地倉庫沒有的提交。
5. 遠程更改拉取到本地分支中,必要時解決任何沖突,然后推送:
git pull origin main
git push -u origin main
git pull origin main --allow-unrelated-histories
強制推送(如果您打算覆蓋遠程分支):
如果你確定你的本地分支應該完全替換遠程分支(注意:這將丟棄遠程提交),你可以強制推送:
git push -u origin main --force
6. 拉取到本地
git clone github_project_repository_url
3.3 git 如何排除一些上傳的folder, files
例如, 有個很大的數據集, 有logs 文件,等等, 你不想上傳
1.?使用 .gitignore
文件排除文件夾:
.gitignore
文件用于指定 Git 應該忽略的文件和文件夾。 這是排除文件夾的最佳方法,尤其是在你不想將這些文件夾上傳到遠程倉庫時。
步驟:
-
在項目根目錄中創建
.gitignore
文件:
如果你的項目根目錄中還沒有.gitignore
文件,請創建一個。 你可以使用 VSCode 創建一個新文件,并將其命名為.gitignore
。 -
編輯
.gitignore
文件:
在.gitignore
文件中,添加你想要忽略的文件夾的名稱,每行一個。 例如,如果你想要忽略名為venv
和data
的文件夾,你的.gitignore
文件應該如下所示:
venv/
data/
-
請注意,
venv/
末尾的斜杠表示這是一個目錄。 -
你也可以使用通配符來匹配多個文件夾或文件。例如,
*.log
會忽略所有以.log
結尾的文件。
3.?VS Code 支持 .gitignore
在 VS Code 中,你可以右鍵單擊要排除的文件或文件夾,然后選擇 "Add to .gitignore"。VS Code 將自動將該文件或文件夾添加到 .gitignore 文件中。
4.?保存 .gitignore
文件。
5.?將更改添加到 Git(可選)
git add .gitignore
這會將 .gitignore
文件添加到暫存區,以便 Git 跟蹤它。 如果你不想跟蹤 .gitignore
文件,可以跳過這一步。
?6.?提交更改:
git commit -m "Add .gitignore file"
7. 清除 Git 緩存 (如果之前已經添加了要忽略的文件):
如果你在添加 .gitignore
文件之前已經將要忽略的文件添加到了 Git 的暫存區,你需要先清除 Git 的緩存,然后再提交更改。運行:
git rm -r --cached .
git add .
git commit -m "Remove cached files and add .gitignore"
-
git rm -r --cached .
:從暫存區中刪除所有文件,但保留本地文件。 -
git add .
:重新添加所有未被忽略的文件到暫存區。
3.4 可能的問題
1.?"'origin' does not appear to be a git repository"
“origin”似乎不是 Git 存儲庫 fatal:無法從遠程存儲庫讀取。
檢查remote origin 是否存在
git remote -v
如果您沒有看到 輸出 ,則表示 origin
is not set.
添加remote origin
your repository is https://github.com/github-user/user_project.git
, add it as origin
:
git remote add origin https://github.com/github-user/user.git
驗證是否添加成功
git remote -v## 預期輸出:
origin https://github.com/github-user/user.git (fetch)
origin https://github.com/github-user/user.git (push)
2.?“fatal: refending to merge unrelated histories”
“Updates was rejected because the tip of your current branch is behind its remote counterport” 表示您的本地倉庫和遠程倉庫具有單獨的提交歷史記錄。
允許不相關的歷史記錄
由于你的本地倉庫與遠程倉庫的歷史記錄不同,請強制 Git 合并它們:
git pull origin main --allow-unrelated-histories
成功合并后,推送您的更改
git push -u origin main
如果推送再次被拒絕,則強制推送:
git push -u origin main --force