Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Golang项目(一组包)放置到Github?_Go - Fatal编程技术网

如何将Golang项目(一组包)放置到Github?

如何将Golang项目(一组包)放置到Github?,go,Go,从Golang教程中,我不清楚如何将Golang代码放到Github中,以便以后能够将该代码作为包从Github导入 这是Golang教程中的一个示例项目工作区(目录结构): 那么,我需要做什么,我需要在这个工作区中的什么位置git init,以便以后能够: 只将newmath包导入到我的某个单独的项目中。这样: import "github.com/user/newmath" 仅获取hello.exe可执行文件 获取整个项目工作区(所有目录:bin、pkg、src) 对于包newmath,

从Golang教程中,我不清楚如何将Golang代码放到Github中,以便以后能够将该代码作为包从Github导入

这是Golang教程中的一个示例项目工作区(目录结构):

那么,我需要做什么,我需要在这个工作区中的什么位置
git init
,以便以后能够:

  • 只将
    newmath
    包导入到我的某个单独的项目中。这样:

    import "github.com/user/newmath"
    
  • 仅获取
    hello.exe
    可执行文件

  • 获取整个项目工作区(所有目录:bin、pkg、src)

  • 对于包
    newmath
    ,它与(后面的2)相同

    现在人们可以做到了

    $ go get github.com/username/newmath
    
    $ go get github.com/username/hello
    $ go install github.com/username/hello
    

    导入“github.com/username/newmath”

    现在应该在他们的资源中工作。该软件包将安装在 自动要求

  • 我假设
    hello
    命令和
    newmath
    包 没有关联,或者关联不够紧密,不属于单个 存储库

    $ mkdir $GOPATH/src/github.com/username/hello
    $ cd $GOPATH/src/github.com/username/hello
    $ git init
    $ ... more git setup
    $ touch hello.go
    $ gvim hello.go
    $ git add hello.go
    $ git commit -a -m 'Inital commit'
    $ git push
    
    现在人们可以做到了

    $ go get github.com/username/newmath
    
    $ go get github.com/username/hello
    $ go install github.com/username/hello
    
    要安装命令,请执行以下操作:
    hello

    • $GOPATH/pkg
      的内容发布到 托管服务
    • 在托管服务中发布
      $GOPATH/bin
      的内容是有意义的。但我不鼓励这种做法,因为这是显而易见的 原因。此外,如果您正在发布源文件,则 二进制文件不是必需的,每个人都可以构建他们的(可信的) 拥有
  • 您似乎仍然对“工作区”这个术语感到困惑。工作区通常只在开发人员的机器上存在一次,但它通常包含多个存储库。有些是由开发人员编写的,有些是从互联网上“获取”的。在这种情况下,发布整个wokspace没有什么意义


    但是,有些人会对每个项目、每个存储库甚至每个包使用单独的工作区。我不知道有什么好处。或者更好地说,我认为与单个工作区相比,没有任何工作区,比如说导出GOPATH=$HOME(这是我多年来的情况,多年来没有任何问题)。

    请查看此链接以了解更多详细信息:

    以下是一个永久章节:

    应用程序和两个库都位于Github上,每个库都位于自己的存储库中。 $GOPATH是项目的根目录-每个Github回购都将 签出$GOPATH下面的几个文件夹

    您的代码布局如下所示:

    src/github.com/jmcvetta/下的每个文件夹都是单独git签出的根


    如果您不喜欢git cli,那么您真正需要做的就是通过web界面上传到github repo。只要确保您的包名与回购协议的名称相同(小写),就可以开始了。我对我的REST API库的github.com/digitalblueye/enroute也做了同样的操作。

    你说得对,但它太令人不满意了。为什么golang的一个项目需要3份回购协议?
    $GOPATH/
    src/
        github.com/
            jmcvetta/
                useless/
                    .git/
                    useless.go
                    useless_test.go
                    README.md
                uselessd/
                    .git/
                    uselessd.go
                    uselessd_test.go
                    README.md