如何将现有的非空目录转换为Git工作目录并将文件推送到远程存储库

HMW*_*HMW 616 git

  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>
Run Code Online (Sandbox Code Playgroud)

什么是git等价物?

我可以"git clone"到一个空目录中,只需移动.git目录并使一切正常吗?

aby*_*byx 996

鉴于你已经设置了一个git守护进程<url>和一个空的存储库:

cd <localdir>
git init
git add .
git commit -m 'message'
git remote add origin <url>
git push -u origin master
Run Code Online (Sandbox Code Playgroud)

  • 这对我也有用.我不得不首先在GitHub中创建一个项目`AppName`.我不清楚确切地说是"<url>"的意思.所以对于那些有同样问题的人,我们简单地使用GitHub.com,我们没有运行我们的仓库,然后第5行使用的`<url>`看起来像这样:`https://github.com /公司名称/ AppName` (33认同)
  • **abyx的**说明似乎有效.我现在运行:`git config branch.master.remote origin`和`git config branch.master.merge refs/heads/master`我将最终得到的结果与克隆远程存储库完全相同?即`git pull`和`git push`将*工作*? (12认同)
  • 如果您正在设置一个不在GitHub上的存储库,请确保使用'git --bare init'来设置**空的远程**存储库,而不是'git init'(就像我做的那样)或推送将失败. (12认同)
  • 只是想补充一下,直到我做了一个:git pull --rebase,我无法推动 (3认同)
  • 如果git因为remote包含一些小的更改而拒绝了(.README,.gitignore等),请尝试使用git pull origin master --allow-unrelated-histories进行合并。 (3认同)
  • 请注意,从现在开始您应该将“master”更改为“main” (3认同)
  • @jdusbabek。运行 'git --bare init' 不起作用,因为您不能执行 'git add 。然后。见[链接](http://stackoverflow.com/questions/1456923/why-am-i-getting-the-message-fatal-this-operation-must-be-run-in-a-work-tree) (2认同)

Hit*_*ahu 50

这就是我的方式.我已经添加了解释,以了解到底发生了什么.

初始化本地存储库

  • 首先用Git初始化Git

    git init

  • 添加所有用于版本控制的文件

    git add.

  • 使用您选择的消息创建提交

    git commit -m'AdditionalBaseCode'

初始化远程存储库

  • 在Github上创建一个项目并复制项目的URL.如下所示:

    在此输入图像描述

链接远程仓库与本地仓库

  • 现在使用复制的URL链接本地仓库与远程GitHub仓库.使用git clone克隆存储库时,它会自动创建一个名为origin的远程连接,指向克隆的存储库.命令remote用于管理一组跟踪的存储库.

    git remote add origin https://github.com/hiteshsahu/Hassium-Word.git

同步

  • 现在我们需要将本地代码与远程代码合并.这一步很重要,否则我们就能在Github上推送代码了.在推送代码之前,您必须调用'git pull'.

    git pull origin master --allow-unrelated-histories

提交你的代码

  • 最后在Github上推送所有更改

    git push -u origin master

  • 这是正确的答案,应该是公认的答案。接受的答案缺少您的“同步”步骤。 (4认同)

cso*_*akk 25

这是我的解决方案:

git init
git remote add origin PATH/TO/REPO
git fetch
git checkout -t origin/master
Run Code Online (Sandbox Code Playgroud)

  • 当您使用“.gitignore”和“README.dm”设置远程存储库时,这是一个很好的解决方案 (2认同)

Rom*_*ler 12

如果远程存储库不为空(如果您在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
Run Code Online (Sandbox Code Playgroud)

编辑1月30日17日:请看下面的评论,确保您使用正确的回购!


pol*_*lka 11

2021 年执行此操作的新官方方法。导航到包含文件的目录。
这假设存储库中还没有文件。

git init
git add .
git commit -m "initial commit"   
git remote add origin https://<git-userName>@github.com/xyz.git
git branch -M main    # New
git push -u origin main # New
Run Code Online (Sandbox Code Playgroud)

有时我必须使用此命令设置上游。

git branch --set-upstream-to=origin/main main
Run Code Online (Sandbox Code Playgroud)

然后用这个命令强制推送。

git push -u origin main --force
Run Code Online (Sandbox Code Playgroud)


小智 5

github存储库何时不为空,如.gitignore和license

使用pull --allow-unrelated-historiespush --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
Run Code Online (Sandbox Code Playgroud)