簡體   English   中英

如何將現有的非空目錄轉換為 Git 工作目錄並將文件推送到遠程存儲庫

[英]How to convert existing non-empty directory into a Git working directory and push files to a remote repository

  1. 我有一個包含無法重命名、移動或刪除的文件的非空目錄(例如 /etc/something)。

  2. 我想將這個目錄檢查到 git 中。

  3. 我希望能夠使用“git push”或類似的東西將此存儲庫的狀態推送到遠程存儲庫(在另一台機器上)。

使用 Subversion(目前我們使用 Subversion 來完成)使用以下方法是微不足道的:

svn mkdir <url> -m <msg>
cd <localdir>
svn co <url> .
svn add <files etc>
svn commit -m <msg>

什么是 git 等價物?

我可以“git clone”到一個空目錄中並簡單地移動 .git 目錄並使一切正常嗎?

鑒於您已經在<url>上設置了一個 git 守護進程和一個空的存儲庫:

cd <localdir>
git init
git add .
git commit -m 'message'
git remote add origin <url>
git push -u origin master

這就是我的做法。 我添加了一個解釋來理解到底發生了什么。

初始化本地存儲庫

  • 首先,初始化 Git

    混帳初始化

  • 添加所有文件以進行版本控制

    git 添加。

  • 使用您選擇的消息創建提交

git commit -m 'AddingBaseCode'

初始化遠程倉庫

  • 在 GitHub 上創建一個項目並復制項目的 URL。 如下所示:

在此處輸入圖片說明

將遠程倉庫與本地倉庫鏈接

  • 現在使用復制的 URL 將您的本地存儲庫與遠程 GitHub 存儲庫鏈接起來。 當您使用 git clone 克隆存儲庫時,它會自動創建一個名為origin的遠程連接,指向克隆的存儲庫。 命令 remote 用於管理一組跟蹤的存儲庫。

    git 遠程添加原點https://github.com/hiteshsahu/Hassium-Word.git

同步

  • 現在我們需要將本地代碼與遠程代碼合並。 這一步很關鍵,否則我們將無法在 GitHub 上推送代碼。 在推送代碼之前,您必須調用 'git pull'。

    git pull origin master --allow-unrelated-history

提交你的代碼

  • 最后,在 GitHub 上推送所有更改

    git push -u origin master

注意:現在 Github 使用“main”作為默認分支。 如果您的項目使用“main”而不是“master”,只需將上述命令中的“master”替換為“main”

這是我的解決方案:

git init
git remote add origin PATH/TO/REPO
git fetch
git checkout -t origin/master

如果遠程存儲庫不為空(如果您在 hub.jazz.net 上使用 IBM DevOps 就是這種情況),那么您需要使用以下序列:

cd <localDir>
git init
git add -A .
git pull <url> master
git commit -m "message"
git remote add origin <url>
git push

編輯 1 月 30 日 17:請查看下面的評論,確保您在正確的倉庫中!

什么時候 github 倉庫不是空的,比如 .gitignore 和 license

使用pull --allow-unrelated-historypush --force-with-lease

使用命令

git init
git add .
git commit -m "initial commit"
git remote add origin https://github.com/...
git pull origin master --allow-unrelated-histories
git push --force-with-lease

我認為有用的最簡單的方法如下。

這可能不是官方方式,但效果很好。

假設您的 PC 上有一個名為“ XYZ ”的項目。 現在你想在 github 上制作這個項目的 git repo 並使用它的功能。

第一步:到“ www.github.com

第 2 步:創建一個帶有“ README.md ”文件的存儲庫( README.md命名)

第 3 步:將存儲庫克隆到您的 PC。

第 4 步:在克隆的文件夾中,您將獲得兩樣東西:“. .git ”文件夾和“ README.md ”文件。 將這兩個復制到您的項目文件夾“ XYZ ”中。

第 5 步:刪除克隆的 repo。

第 6 步:添加、提交和推送項目的所有文件和文件夾。

現在,您可以將您的項目“ XYZ ”用作 git 存儲庫。

2021 年執行此操作的新官方方法。導航到包含文件的目錄。 這假設存儲庫中沒有文件。

git init
git add .
git commit -m "initial commit"   
git remote add origin https://<git-userName>@github.com/xyz.gi
git branch -M main    # New
git push -u origin main # New

有時我必須使用此命令設置上游。

git branch --set-upstream-to=origin/main main

然后用這個命令強制推送。

git push -u origin main --force

我有一個類似的問題。 我創建了一個新的存儲庫,而不是在我想要創建存儲庫的目錄中 然后我將創建的文件復制到我想要創建存儲庫的目錄中。 然后使用我剛剛將文件復制到的目錄打開現有存儲庫。

注意:我確實使用 github desktop 來制作和打開現有的存儲庫。

如果您使用一些默認readme filelicense創建存儲庫,這是我的解決方案

git init
git add -A
git commit -m "initial commit"   
git remote add origin https://<git-userName>@github.com/xyz.git //Add your username so it will avoid asking username each time before you push your code
git fetch
git pull https://github.com/xyz.git <branch>
git push origin <branch> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM