[英]How to convert existing non-empty directory into a Git working directory and push files to a remote repository
我有一個包含無法重命名、移動或刪除的文件的非空目錄(例如 /etc/something)。
我想將這個目錄檢查到 git 中。
我希望能夠使用“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'
初始化遠程倉庫
將遠程倉庫與本地倉庫鏈接
現在使用復制的 URL 將您的本地存儲庫與遠程 GitHub 存儲庫鏈接起來。 當您使用 git clone 克隆存儲庫時,它會自動創建一個名為origin的遠程連接,指向克隆的存儲庫。 命令 remote 用於管理一組跟蹤的存儲庫。
同步
現在我們需要將本地代碼與遠程代碼合並。 這一步很關鍵,否則我們將無法在 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-history和push --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 file
或license
創建存儲庫,這是我的解決方案
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.