将现有源代码导入 GitHub

Posted

技术标签:

【中文标题】将现有源代码导入 GitHub【英文标题】:Import existing source code to GitHub 【发布时间】:2011-06-07 05:08:18 【问题描述】:

如何将源代码从我的计算机导入到我的 GitHub 帐户?

【问题讨论】:

我发现最简单的方法是使用 GitHub GUI,然后将配置指向工作空间的根目录,然后单击“在硬盘驱动器上查找存储库”按钮,它会识别您的所有 Git 本地存储库工作区并允许单独导入它们。容易。 @djangofan 你指的是哪个 github GUI?你有 GUI 的链接吗? windows.github.com Pete 的回答在 OS X 上效果很好——无需使用 GUI。 【参考方案1】:

如果您有本地源代码想要添加到新的远程新 git 存储库而不首先“克隆”远程,请执行以下操作(我经常这样做 - 您在 bitbucket/github 中创建远程空存储库,然后推上你的来源)

    创建远程仓库,获取git@github.com:/youruser/somename.githttps://github.com/youruser/somename.git等URL

    如果您的本地 GIT 存储库已设置,请跳过第 2 步和第 3 步


    在本地,在源代码的根目录git init

    2a。如果您使用 .gitignore 和 README.md 初始化 repo,您​​应该执行 git pull url from step 1 以确保您不会将文件提交到您想要忽略的源;)

    在本地,在初始存储库中添加并提交您想要的内容(对于所有内容,git add . 然后git commit -m 'initial commit comment'


    使用名称“origin”附加远程存储库(就像克隆一样)git remote add origin [URL From Step 1]

    执行git pull origin master 拉取远程分支,使它们同步。 向上推您的主分支(将主分支更改为其他分支):git push origin master

【讨论】:

为我工作。我发现我需要在 git push 之前运行git pull origin master。没有它,我在推送尝试期间收到“因为您当前分支的尖端落后”的错误。也许这是因为我创建了一个带有启动 Readme.md 的远程存储库。 获取 SSH 协议的 repo URL,以便能够使用您的 ssh 私钥而不是输入密码来提交。 @yuvlio 这就是原因。如果您使用 readme.md 创建您的 github 存储库,那么实际上您现在落后于您要创建的源代码。 正如@Snicolas 所说,如果您使用 SSH,请使用 git@github.com:youruser/somename.git 而不是 git://github.com/youruser/somename.git 。 GitHub 在您创建新存储库后立即解释了相同的过程。正如@yuvilio 已经说过的,您不应该使用自述文件初始化您的存储库。相反,在您现有的本地仓库中使用touch README.md【参考方案2】:

这在excellent free eBook ProGit 中有解释。它假定您已经有一个本地 Git 存储库和一个远程存储库。要连接它们,请使用:

$ git remote
origin
$ git remote add pb git://github.com/paulboone/ticgit.git
$ git remote -v
origin    git://github.com/schacon/ticgit.git
pb    git://github.com/paulboone/ticgit.git

要将数据从本地存储库推送到 GitHub,请使用:

$ git push pb master

如果您尚未设置本地和/或远程存储库,请查看 GitHub 和 previous chapters in the book 上的帮助。

【讨论】:

【参考方案3】:

提到的其中一个 cmets 使用 GitHub GUI,但它没有提供任何关于使用的具体帮助,并且注意到大多数(如果不是全部)答案仅在命令提示符下有用。

如果您想使用 GitHub GUI,可以按照以下步骤操作:

    单击“+”按钮并选择“添加本地存储库” 使用现有代码导航到目录,然后单击“添加”按钮。 现在应该提示您“在此处创建一个新的本地 Git 存储库”,因此单击“是”按钮。 根据需要添加“提交摘要”和“扩展描述”。默认情况下,您的所有文件都应已选中并带有复选标记。单击“提交和同步”按钮。 现在将提示您添加项目的名称和描述,以及将其推送到哪个帐户(如果您有多个)。单击“推送存储库”按钮

在 GitHub 图标旋转片刻之后,您的源代码将属于本地存储库,并与您 GitHub 帐户上的远程存储库推送/同步。所有这一切都假设您之前已经设置了 GitHub GUI、您的 GitHub 帐户和 SSH 密钥。

【讨论】:

@cfont 这是否保留了我本地存储库中已经存在的长期历史,或者它只是创建了一个巨大的提交并且我已经丢失了我所有的历史? @theJollySin,对不起,我想我需要努力让我的 *** 通知正常工作。这应该保留现有本地存储库的历史记录。 TBH,我当时没有对此进行测试,但我想不出它会压垮你当地历史的原因。事实上,除非你真的想压缩提交,否则重点应该是保留它。【参考方案4】:

正如 JB 非常正确地指出的那样,只需按照说明在 GitHub 上进行操作就非常简单。

以下是登录后使用http://github.com/new 在 GitHub 上设置新存储库后显示的说明示例。

Global setup:

 Set up Git:
  git config --global user.name "Name"
  git config --global user.email email@gmail.com


Next steps:

  mkdir audioscripts
  cd audioscripts
  git init
  touch README
  git add README
  git commit -m 'first commit'
  git remote add origin git@github.com:ktec/audioscripts.git
  git push -u origin master


Existing Git repository?

  cd existing_git_repo
  git remote add origin git@github.com:ktec/audioscripts.git
  git push -u origin master


Importing a Subversion repository?

  Check out the guide for step-by-step instructions.

再简单不过了!!

【讨论】:

【参考方案5】:

是的。创建一个新的存储库,在源当前存在的目录中执行git init

更多:http://help.github.com/creating-a-repo/

【讨论】:

【参考方案6】:

在尝试执行 Pete 的步骤时,我在合并时遇到了一些麻烦。这些是我最终完成的步骤。

    使用您的操作系统删除您要提交的项目文件夹内的.git 文件夹。这将为您提供一个干净的工作状态。这也是在项目文件夹中创建.gitignore 文件的好时机。这可以是您在 github.com 上创建存储库时创建的 .gitignore 的副本。当您更新 github.com 存储库时,执行此复制将避免将其删除。

    打开 Git Bash 并导航到您刚刚从中删除 .git 文件夹的文件夹。

    运行git init。这会在您所在的文件夹中设置一个本地存储库。

    运行git remote add [alias] https://github.com/[gitUserName]/[RepoName].git。 [别名] 可以是任何你想要的。 [alias] 用于绑定到本地存储库,因此机器名称适用于 [alias]。该 URL 可以在 github.com 上找到,确保单击顶部的 HTTP|SSH|Git Read-Only 之外的 HTTP 按钮。 git:// URL 对我不起作用。

    运行git pull [alias] master。这将更新您的本地存储库并避免一些合并冲突。

    运行git add .

    运行git commit -m 'first code commit'

    运行git push [alias] master

【讨论】:

-1 这不仅仅是“将现有代码导入 github”。它会删除整个存储库历史记录!【参考方案7】:
    打开您的 GitHub 仪表板(如果您已登录,则位于 https://github.com/) 点击New Repository 填空;点击创建存储库 按照随后出现的页面上的说明进行操作

【讨论】:

【参考方案8】:

来自 Bitbucket:

上推现有存储库。您的计算机上已经有一个 Git 存储库。让我们把它推到 Bitbucket:

cd /path/to/my/repo
git remote add origin ssh://git@bitbucket.org/javacat/geo.git
git push -u origin --all   # To push up the repo for the first time

【讨论】:

fyi,-u 与 --set-upstream 相同。【参考方案9】:

我来这里是为了寻找一种将现有源文件添加到 GitHub 存储库的简单方法。我看到@Pete 非常完整的答案并想“什么?!一定有更简单的方法。”

这是五步的简单方法(无需控制台操作!)

如果你真的很着急,你可以阅读第 3 步。其他的只是为了完整。

    在 GitHub 网站上创建一个存储库。 (我不会让你一步一步来侮辱你的智慧。) 在本地克隆新存储库。 (您可以通过网站或桌面客户端软件执行此操作。) 在您的硬盘驱动器上找到新克隆的存储库,然后像添加到普通目录一样添加文件。 将更改同步回 GitHub。 就是这样!

完成!

【讨论】:

【参考方案10】:

将 GitHub 存储库添加为远程源(将 [] 替换为您的 URL):

git remote add origin [git@github.com:...]

切换到你的master分支并复制到develop分支:

git checkout master
git checkout -b develop

将你的开发分支推送到 GitHub 开发分支(-f 表示强制):

git push -f origin develop:develop

【讨论】:

【参考方案11】:

实际上,如果您选择在 GitHub 上创建一个空仓库,它会为您提供准确的说明,您几乎可以将这些说明复制并粘贴到您的终端中(此时):

…or create a new repository on the command line

echo "# ..." >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:<user>/<repo>.git
git push -u origin master

【讨论】:

【参考方案12】:

以下是有关如何启动 GitHub 存储库然后将您已创建的代码推送到其中的一些说明。第一组指令直接来自 GitHub。

来源:https://help.github.com/articles/create-a-repo/

    在任意页面的右上角,单击,然后单击新建存储库

    为您的存储库创建一个简短易记的名称。例如,“hello-world”。

    (可选)添加您的存储库的描述。例如,“我在 GitHub 上的第一个存储库。”

    在创建公共或私有存储库之间进行选择。

    使用自述文件初始化此存储库。

    创建存储库。

恭喜!您已成功创建了第一个存储库,并使用 README 文件对其进行了初始化。

现在,在这些步骤之后,您需要将本地计算机上的代码推送到您刚刚创建的存储库,然后按照以下步骤执行此操作:

    git init(在您的代码所在的根文件夹中)

    git add -A(这将添加您要提交的目录中的所有文件和文件夹)

    git commit -am "First Project commit"

    git remote add origin git@github.com:YourGithubName/your-repo-name.git(您可以在刚刚创建的 GitHub 存储库主页的“ssh 克隆 URL”下找到此地址)

    git push -u origin master

就是这样。您的代码现在将被推送到 GitHub。现在,每次您想继续推送已更改的代码时,都可以这样做。

    git commit -m "New changes"

    git push origin master(如果 master 是您正在处理的分支)

【讨论】:

【参考方案13】:

我的解决方案:

问题是文件大小,不能超过100M。

在迁移到 github 之前,在存储库中执行以下操作:

git clone --mirror git://example.com/some-big-repo.git

wget http://repo1.maven.org/maven2/com/madgag/bfg/1.12.12/bfg-1.12.12.jar

mv bfg-1.12.12.jar bfg.jar

java -jar bfg.jar --strip-blobs-bigger-than 100M some-big-repo.git

cd some-big-repo.git

git reflog expire --expire=now --all && git gc --prune=now --aggressive

git push

准备好了!

现在通过工具再次进行迁移:https://github.com/new/import

查看更多: Error while pushing to github repo 和 https://rtyley.github.io/bfg-repo-cleaner/

希望对你有所帮助。 :)

【讨论】:

【参考方案14】:

在 git hub 中创建你的仓库

允许通过 GIT 跟踪您的项目

    使用 CMD 转到保存项目文件的文件夹->cd /automation/xyz/codebase 使用命令 git status 检查 git 初始化 如果您收到此错误消息:致命:不是 git 存储库(或任何父目录):.git,这意味着您当前所在的文件夹没有被 git 跟踪。在这种情况下,通过键入 git init 在项目文件夹中初始化 git,然后执行添加和提交项目的过程。

如果您收到另一条错误消息,请仔细阅读其中的内容。通过说“git”这个词无法识别,是不是说你的计算机上没有安装 git?是说您已经在初始化 git 的文件夹或子文件夹中吗?谷歌您的错误和/或输出以了解它,并找出解决方法。

现在运行以下命令

#

echo "你的 git hub 仓库名称" >> README.md 混帐初始化 git 添加 README.md git commit -m "第一次提交" git 远程添加源 https:// #

当你第一次打开你的存储库时,你会得到上面的块

如果在最后一个命令运行“git push -u origin master”后发生错误或没有任何反应 别担心

转到代码可用的文件夹,并通过 git 扩展将其推送到 git [URL],分支

【讨论】:

以上是关于将现有源代码导入 GitHub的主要内容,如果未能解决你的问题,请参考以下文章

如何将代码从新的本地文件夹推送到现有 Github 存储库的主分支并保留提交历史记录?

Terraform 导入现有资源

将hadoop源代码导入intellij

Visual Studio 2013新建工程导入现有代码文件夹并且保持目录结构

IBM Worklight - 如何将 Worklight 代码导入 Eclipse?

将 Git 与现有 Xcode 项目一起使用