1. 將本地的代碼更改推送到“已存在的”GitHub倉(cāng)庫(kù)瓢娜,需要經(jīng)歷以下一系列的步驟:
1)git remote -v
首先,確保您已經(jīng)安裝了git拆又,并通過(guò)命令行或終端導(dǎo)航到您的本地git倉(cāng)庫(kù)所在的目錄。
使用以下命令查看當(dāng)前的git倉(cāng)庫(kù)配置信息,確認(rèn)已設(shè)置了與GitHub倉(cāng)庫(kù)的遠(yuǎn)程連接:
git remote -v
您應(yīng)該能夠看到列出了一個(gè)或多個(gè)名為 “origin” 的遠(yuǎn)程倉(cāng)庫(kù)钢坦,其中包含GitHub倉(cāng)庫(kù)的URL。
2)git remote add
如果沒(méi)有列出任何遠(yuǎn)程倉(cāng)庫(kù)啥酱,您需要將GitHub倉(cāng)庫(kù)的URL添加為遠(yuǎn)程倉(cāng)庫(kù)爹凹。使用以下命令添加遠(yuǎn)程連接:
git remote add origin <GitHub倉(cāng)庫(kù)的URL>
3)git status
確認(rèn)您已經(jīng)將更新的更改添加到本地倉(cāng)庫(kù)的索引中,可以使用以下命令來(lái)查看更改的狀態(tài):
git status镶殷,運(yùn)行此命令可以查看倉(cāng)庫(kù)中的更改狀態(tài)禾酱,包括已修改但未暫存的文件和已暫存但未提交的文件。
4)git checkout
如果您只想推送到特定分支绘趋,使用以下命令切換到目標(biāo)分支:
git checkout <目標(biāo)分支名稱(chēng)>
5)git pull origin
在開(kāi)始編寫(xiě)新的代碼或修改現(xiàn)有代碼之前颤陶,先執(zhí)行?git pull origin <分支名稱(chēng)>?來(lái)拉取最新的更改,并將遠(yuǎn)程倉(cāng)庫(kù)中的更改合并到您的本地分支中陷遮。
6)git add
使用?git add?命令將更改添加到暫存區(qū)滓走。例如,可以運(yùn)行以下命令將所有更改添加到暫存區(qū):
git add .
或者帽馋,如果只想暫存特定的文件搅方,可以運(yùn)行:
git add <文件路徑>
或?git add myfolder/疫粥。
這將使更改進(jìn)入暫存區(qū),準(zhǔn)備提交到git倉(cāng)庫(kù)腰懂。
7)?git commit?
在執(zhí)行?git add?之后梗逮, 更改添加到暫存區(qū),您仍然需要執(zhí)行?git commit?命令來(lái)創(chuàng)建一個(gè)新的提交并將更改永久保存到git倉(cāng)庫(kù)中绣溜。git commit?命令需要一個(gè)提交信息慷彤,用于描述您所做的更改。
您可以使用以下命令來(lái)進(jìn)行提交:
git commit -m "提交信息"
在引號(hào)中怖喻,您可以輸入一條簡(jiǎn)短的提交信息底哗,以解釋您所做的更改。
注意锚沸,git commit?只會(huì)提交暫存區(qū)中的更改跋选。如果您有其他未暫存的更改,您需要在提交之前使用?git add?命令將它們添加到暫存區(qū)哗蜈。
7)git push
在執(zhí)行?git commit?后前标,您的更改已經(jīng)成功提交到本地倉(cāng)庫(kù)中。但是距潘,這只是將更改保存在本地炼列,還沒(méi)有將它們推送到遠(yuǎn)程倉(cāng)庫(kù)(如GitHub)。
如果您希望將更改與其他開(kāi)發(fā)人員共享音比,或?qū)⑵鋫浞莸竭h(yuǎn)程倉(cāng)庫(kù)中俭尖,您需要執(zhí)行以下操作之一:
推送到遠(yuǎn)程倉(cāng)庫(kù):使用?git push?命令將您的本地分支與遠(yuǎn)程倉(cāng)庫(kù)(通常是GitHub)進(jìn)行同步。運(yùn)行以下命令將本地分支推送到遠(yuǎn)程分支:
git push origin <分支名稱(chēng)>
替換?<分支名稱(chēng)>?為您要推送到的遠(yuǎn)程分支的名稱(chēng)(如?main?或?master)洞翩。
這將上傳您的本地更改并將其應(yīng)用到遠(yuǎn)程倉(cāng)庫(kù)的相應(yīng)分支中稽犁。
如果這是首次推送到遠(yuǎn)程分支,或者原始分支已被刪除骚亿,您可以使用以下命令:
git push -u origin <分支名稱(chēng)>
這將創(chuàng)建一個(gè)新的遠(yuǎn)程分支已亥,并將本地分支與遠(yuǎn)程分支關(guān)聯(lián)起來(lái)。
Tips: 完成以上步驟后循未,您的代碼更改就會(huì)被推送到GitHub上陷猫,并與其他開(kāi)發(fā)人員共享秫舌。請(qǐng)記住的妖,推送操作可能需要提供GitHub的用戶(hù)名和密碼、個(gè)人訪(fǎng)問(wèn)令牌(PAT)或使用SSH密鑰進(jìn)行身份驗(yàn)證足陨。
2. 平時(shí)將代碼寄存到GitHub倉(cāng)庫(kù)
要將代碼推送(push)到GitHub倉(cāng)庫(kù)嫂粟,你可以按照以下步驟進(jìn)行操作:
1. 首先,確保你已經(jīng)在本地計(jì)算機(jī)上安裝了Git墨缘,并且已經(jīng)配置好Git的用戶(hù)信息(用戶(hù)名和郵箱)星虹。你可以在終端或命令提示符中運(yùn)行以下命令來(lái)檢查是否已安裝Git以及版本號(hào):
? ```
? git --version
? ```
? 如果沒(méi)有安裝Git零抬,請(qǐng)根據(jù)你的操作系統(tǒng)下載并安裝Git。
2. 將你的代碼添加到本地的Git倉(cāng)庫(kù)中宽涌。在你的項(xiàng)目根目錄下平夜,運(yùn)行以下命令:
? ```
? git init
? git add .
? git commit -m "Initial commit"
? ```
? 這將初始化一個(gè)新的本地Git倉(cāng)庫(kù),并將項(xiàng)目中的所有文件添加到倉(cāng)庫(kù)中卸亮,并創(chuàng)建一個(gè)初始提交(commit)忽妒。
3. 在GitHub上創(chuàng)建一個(gè)新的空倉(cāng)庫(kù),或者你可以使用已經(jīng)存在的倉(cāng)庫(kù)兼贸。如果你要?jiǎng)?chuàng)建一個(gè)新的倉(cāng)庫(kù)段直,可以按照以下步驟操作:
? - 在GitHub上登錄到你的賬號(hào)。
? - 點(diǎn)擊右上角的加號(hào)圖標(biāo)溶诞,選擇"New repository"(或類(lèi)似選項(xiàng))創(chuàng)建一個(gè)新倉(cāng)庫(kù)鸯檬。
? - 輸入倉(cāng)庫(kù)的名稱(chēng)和描述等信息,然后點(diǎn)擊"Create repository"(或類(lèi)似按鈕)創(chuàng)建新倉(cāng)庫(kù)螺垢。
4. 將本地倉(cāng)庫(kù)與GitHub倉(cāng)庫(kù)進(jìn)行關(guān)聯(lián)喧务。在終端或命令提示符中,運(yùn)行以下命令枉圃,替換`<remote-url>`為你的GitHub倉(cāng)庫(kù)的URL:
? ```
? git remote add origin <remote-url>
? ```
5. 最后蹂楣,將本地代碼推送(push)到GitHub倉(cāng)庫(kù)。運(yùn)行以下命令:
? ```
? git push -u origin master
? ```
? 如果你正在使用的是其他分支名稱(chēng)讯蒲,可以將`master`替換為你的分支名稱(chēng)痊土。
這樣,你的代碼就會(huì)被推送到GitHub倉(cāng)庫(kù)中墨林。請(qǐng)確保你有適當(dāng)?shù)臋?quán)限來(lái)推送代碼到該倉(cāng)庫(kù)赁酝。
3. 報(bào)錯(cuò)1
1)報(bào)錯(cuò)
git push origin master
Username for 'https://github.com': L7991-lian
Password for 'https://L7991-lian@github.com':
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/jiang-junyao/CACIMAR.git/'
使用HTTPS協(xié)議推送更改到GitHub遠(yuǎn)程倉(cāng)庫(kù)時(shí)遇到了身份驗(yàn)證錯(cuò)誤。錯(cuò)誤消息中提到旭等,自2021年8月13日起酌呆,GitHub不再支持密碼身份驗(yàn)證。為了解決這個(gè)問(wèn)題搔耕,你可以使用以下方法之一進(jìn)行身份驗(yàn)證:
使用SSH協(xié)議進(jìn)行身份驗(yàn)證:首先隙袁,你需要在GitHub上設(shè)置SSH密鑰并將其與你的帳戶(hù)關(guān)聯(lián)。然后弃榨,將遠(yuǎn)程URL更改為SSH格式菩收。在命令行中執(zhí)行以下命令:
git remote set-url origin git@github.com:jiang-junyao/CACIMAR.git
然后再次嘗試推送更改,應(yīng)該不再需要輸入用戶(hù)名和密碼鲸睛。
使用個(gè)人訪(fǎng)問(wèn)令牌(Personal Access Token娜饵,簡(jiǎn)稱(chēng)PAT)進(jìn)行身份驗(yàn)證:你可以在GitHub中生成一個(gè)PAT,并使用該令牌作為密碼進(jìn)行身份驗(yàn)證官辈。在命令行中執(zhí)行以下命令:
git remote set-url origin https://<PAT>@github.com/jiang-junyao/CACIMAR.git
將<PAT>替換為你生成的個(gè)人訪(fǎng)問(wèn)令牌箱舞,然后再次嘗試推送更改遍坟。
請(qǐng)根據(jù)你的首選方法進(jìn)行身份驗(yàn)證,并確保遠(yuǎn)程URL正確設(shè)置后再次嘗試推送更改到GitHub遠(yuǎn)程倉(cāng)庫(kù)晴股。
2)設(shè)置SSH密鑰并將其與你的GitHub帳戶(hù)關(guān)聯(lián)
設(shè)置SSH密鑰并將其與你的GitHub帳戶(hù)關(guān)聯(lián)的步驟如下:
1. 打開(kāi)命令行終端或Git Bash愿伴。
2. 在終端中輸入以下命令來(lái)生成SSH密鑰對(duì):
? ```
? ssh-keygen -t ed25519 -C "your_email@example.com"
? ```
? 這將生成一對(duì)公鑰和私鑰。確保替換 `"your_email@example.com"`為你在GitHub上注冊(cè)的電子郵件地址电湘。
3. 終端將提示你選擇要保存密鑰的文件路徑和名稱(chēng)公般。默認(rèn)情況下,會(huì)在用戶(hù)主目錄下生成密鑰胡桨。你可以選擇使用默認(rèn)路徑官帘,或提供自定義路徑。
4. 設(shè)置一個(gè)安全的密碼短語(yǔ)昧谊。這個(gè)密碼短語(yǔ)在使用此密鑰對(duì)進(jìn)行身份驗(yàn)證時(shí)起到保護(hù)作用刽虹。
5. 完成后,終端將顯示公鑰的指紋和密鑰路徑信息呢诬。復(fù)制并保存你的公鑰的內(nèi)容涌哲,以便在后續(xù)步驟中使用。
6. 登錄到你的GitHub帳戶(hù)尚镰,并轉(zhuǎn)到以下路徑:用戶(hù)頭像 > Settings > SSH and GPG keys阀圾。
7. 點(diǎn)擊 "New SSH key"(新的SSH秘鑰)按鈕。
8. 在 "Title"(標(biāo)題)字段中狗唉,為SSH密鑰提供一個(gè)描述性的名稱(chēng)(例如初烘,"My SSH Key")。
9. 粘貼之前復(fù)制的公鑰內(nèi)容到 "Key"(密鑰)字段中分俯。(公鑰的內(nèi)容應(yīng)該類(lèi)似于以下樣式:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMxxxxxxxxxxiQr9sqjbnnnnnnnnRxt6AjLl8VM xxx@qq.com
)
10. 單擊 "Add SSH key"(添加SSH密鑰)按鈕肾筐,完成關(guān)聯(lián)。
現(xiàn)在缸剪,你的SSH密鑰已經(jīng)與你的GitHub帳戶(hù)成功關(guān)聯(lián)吗铐。你可以使用SSH協(xié)議來(lái)進(jìn)行身份驗(yàn)證和進(jìn)行與遠(yuǎn)程倉(cāng)庫(kù)之間的交互操作。
或者也可以使用下面PAT的方式杏节。
3)個(gè)人訪(fǎng)問(wèn)令牌(Personal Access Token唬渗,簡(jiǎn)稱(chēng)PAT)進(jìn)行身份驗(yàn)證
使用個(gè)人訪(fǎng)問(wèn)令牌(Personal Access Token,簡(jiǎn)稱(chēng)PAT)進(jìn)行身份驗(yàn)證:
在GitHub上生成一個(gè)PAT奋渔。你可以按照以下步驟進(jìn)行操作:
登錄到你的GitHub帳戶(hù)镊逝,點(diǎn)擊右上角的用戶(hù)頭像,然后選擇“Settings”(設(shè)置)卒稳。
在左側(cè)菜單中蹋半,選擇“Developer settings”(開(kāi)發(fā)者設(shè)置),然后選擇“Personal access tokens”(個(gè)人訪(fǎng)問(wèn)令牌)充坑。
點(diǎn)擊“Generate new token”(生成新令牌)按鈕减江,在彈出窗口中提供一個(gè)描述性的名稱(chēng),并選擇所需的權(quán)限和范圍捻爷。
點(diǎn)擊“Generate token”(生成令牌)按鈕辈灼,然后將生成的令牌復(fù)制到安全的地方。
在命令行中執(zhí)行以下命令也榄,并將<PAT>替換為你生成的個(gè)人訪(fǎng)問(wèn)令牌:
git remote set-url origin https://<PAT>@github.com/jiang-junyao/CACIMAR.git
然后再次嘗試推送更改巡莹。
請(qǐng)根據(jù)你的需要選擇其中一種方式,并確保遠(yuǎn)程URL正確設(shè)置后再次嘗試推送更改到GitHub遠(yuǎn)程倉(cāng)庫(kù)甜紫。
4. 報(bào)錯(cuò)2
1)報(bào)錯(cuò)
git push
To github.com:jiang-junyao/CACIMAR.git
! [rejected]? ? ? ? master -> master (fetch first)
error: failed to push some refs to 'git@github.com:jiang-junyao/CACIMAR.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
這個(gè)錯(cuò)誤表明你嘗試推送的分支 `master` 已經(jīng)包含了遠(yuǎn)程倉(cāng)庫(kù)中你沒(méi)有的工作降宅。這通常是因?yàn)橛衅渌艘呀?jīng)向相同的分支推送了新的更改。
為了解決這個(gè)問(wèn)題囚霸,你可以執(zhí)行以下步驟:
1. 首先腰根,使用 `git pull` 命令從遠(yuǎn)程倉(cāng)庫(kù)拉取最新的更改并合并到你的本地分支上。執(zhí)行以下命令:
? ```
? git pull origin master
? ```
2. 如果有沖突產(chǎn)生拓型,請(qǐng)根據(jù)提示對(duì)沖突進(jìn)行解決额嘿。你可以通過(guò)編輯相應(yīng)的文件以手動(dòng)解決沖突次屠,然后執(zhí)行 `git add` 命令將解決后的文件添加到暫存區(qū)君旦。
3. 繼續(xù)執(zhí)行 `git push` 命令嘗試推送更改到遠(yuǎn)程倉(cāng)庫(kù)纵朋。執(zhí)行以下命令:
? ```
? git push origin master
? ```
如果其他人在你拉取最新更改之前向遠(yuǎn)程倉(cāng)庫(kù)推送了更改揪阶,你可能需要解決沖突才能成功推送你的更改怔昨。
2)Merge 要求輸入提交信息
Merge branch 'master' of github.com:jiang-junyao/CACIMAR
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
這是一個(gè)要求你輸入提交信息的提示盏混。當(dāng)執(zhí)行?git pull?命令拉取遠(yuǎn)程更改并合并時(shí)置森,Git 會(huì)自動(dòng)創(chuàng)建一個(gè)合并提交的提交信息模板续搀。
在這個(gè)模板中帐我,你需要提供一個(gè)解釋為什么進(jìn)行了這次合并的提交信息刘莹。如果這個(gè)合并是將更新的上游代碼合并到主題分支中,你可以簡(jiǎn)單地描述一下這個(gè)過(guò)程焚刚〉阃洌或者,如果有其他重要的信息需要包含在提交信息中矿咕,你也可以在這里添加抢肛。
在這種情況下,你可以將提交信息保留為空碳柱,以終止提交捡絮。你可以在模板中添加自己的評(píng)論,或者刪除模板并提交一個(gè)全新的提交信息莲镣。
在命令行中福稳,你可以通過(guò)按下?i?鍵進(jìn)入插入模式,然后編輯提交信息瑞侮。完成編輯后的圆,按下?Esc?鍵退出插入模式鼓拧,并輸入?:wq?保存更改并退出編輯器。
例如越妈,如果你使用的是 Vim 編輯器季俩,你可以輸入?:wq?并按下回車(chē)鍵保存更改并退出。
如果你正在使用其他編輯器梅掠,可能需要查閱相應(yīng)的文檔以了解如何保存更改并退出編輯器酌住。
你可以提供以下內(nèi)容作為基本的提交描述:
```
Merge branch 'master' of github.com:jiang-junyao/CACIMAR
Added new code to analyze the evolutionary relationships between cell types in different species.
```
這個(gè)提交信息簡(jiǎn)潔明了地表達(dá)了你的更改和添加的新功能的目的。根據(jù)需要阎抒,你可以根據(jù)你的具體情況對(duì)提交信息進(jìn)行調(diào)整或添加其他相關(guān)信息酪我。
請(qǐng)注意,提交信息應(yīng)該盡可能清晰地描述你的更改和添加的功能且叁,以便其他人能夠理解你的工作并與之交互都哭。