如何使用git创建远程仓库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用git创建远程仓库相关的知识,希望对你有一定的参考价值。
工具:
git
终端
方法:
1、第一步要创建远程仓库让别人连接。需要打开远程连接。找到系统偏好设置。找到花红圈的共享按钮,点击。
2、然后看到有远程连接选项,在允许访问这,选择所有用户。然后保存。现在需要进行终端部分了。
3、点击桌面右上角的放大镜,搜索终端,找到后打开。
4、首先创建一个空的仓库,分别再终端中敲mkdir jj回车 再敲cd jj回车 再敲ls 回车,再敲git init回车。就可以创建完成一个空的仓库了。如果用git --bare init --shared group来声明就可以变为一个可以远程推送的服务器了。但下面的第5、6步就不需要了。只需要克隆下来使用即可。
5、在这个本地仓库中创建一个txt格式的文件,文件中的内容为our first git repository,代码添加如图所示,成功后会显示create mode 100644,如图所示。
6、本地仓库建成之后,在本地仓库添加一个远程仓库,并将本地的master分支跟踪到远程分支。
这儿输入时要特别注意。
origin 远程仓库名
ssh://192.168.100.103/~/jj/.git这个ssh是你本地的ip地址,格式要和我这一样,双斜杠,冒号等、
输入密码后,出现
Everything up-to-date
证明成功了。
7、另一台机器上验证一下,打开终端,输入git clone origin ssh://192.168.100.103/~/jj/.git即可。我的远程仓库是origin你们的是啥,自己更改。
按回车后出现
Cloning into jj...
证明成功了。
参考技术A 如果你远端创建了库了那么 本地的工程就可以用clone命令克隆一个, 如果没有 那么需要手动执行git remote add 命令新加一个和远端有关系的东西 这样就可以用git push推送过去了本回答被提问者采纳 参考技术B 要参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库。远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写。同他人协作开发某个项目时,需要管理这些远程仓库,以便推送或拉取数据,分享各自的工作进展。管理远程仓库的工作,包括添加远程库,移除废弃的远程库,管理各式远程库分支,定义是否跟踪这些分支,等等。本节我们将详细讨论远程库的管理和使用。
查看当前的远程库
要查看当前配置有哪些远程仓库,可以用 git remote 命令,它会列出每个远程库的简短名字。在克隆完某个项目后,至少可以看到一个名为 origin 的远程库,Git 默认使用这个名字来标识你所克隆的原始仓库:
$ git clone git://github.com/schacon/ticgit.git
Cloning into 'ticgit'...
remote: Reusing existing pack: 1857, done.
remote: Total 1857 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (1857/1857), 374.35 KiB | 193.00 KiB/s, done.
Resolving deltas: 100% (772/772), done.
Checking connectivity... done.
$ cd ticgit
$ git remote
origin
也可以加上 -v 选项(译注:此为 --verbose 的简写,取首字母),显示对应的克隆地址:
$ git remote -v
origin git://github.com/schacon/ticgit.git (fetch)
origin git://github.com/schacon/ticgit.git (push)
如果有多个远程仓库,此命令将全部列出。比如在我的 Grit 项目中,可以看到:
$ cd grit
$ git remote -v
bakkdoor git://github.com/bakkdoor/grit.git
cho45 git://github.com/cho45/grit.git
defunkt git://github.com/defunkt/grit.git
koke git://github.com/koke/grit.git
origin git@github.com:mojombo/grit.git
这样一来,我就可以非常轻松地从这些用户的仓库中,拉取他们的提交到本地。请注意,上面列出的地址只有 origin 用的是 SSH URL 链接,所以也只有这个仓库我能推送数据上去(我们会在第四章解释原因)。
添加远程仓库
要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行 git remote add [shortname] [url]:
$ 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
现在可以用字符串 pb 指代对应的仓库地址了。比如说,要抓取所有 Paul 有的,但本地仓库没有的信息,可以运行 git fetch pb:
$ git fetch pb
remote: Counting objects: 58, done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 44 (delta 24), reused 1 (delta 0)
Unpacking objects: 100% (44/44), done.
From git://github.com/paulboone/ticgit
* [new branch] master -> pb/master
* [new branch] ticgit -> pb/ticgit
现在,Paul 的主干分支(master)已经完全可以在本地访问了,对应的名字是 pb/master,你可以将它合并到自己的某个分支,或者切换到这个分支,看看有些什么有趣的更新。
从远程仓库抓取数据
正如之前所看到的,可以用下面的命令从远程仓库抓取数据到本地:
$ git fetch [remote-name]
此命令会到远程仓库中拉取所有你本地仓库中还没有的数据。运行完成后,你就可以在本地访问该远程仓库中的所有分支,将其中某个分支合并到本地,或者只是取出某个分支,一探究竟。(我们会在第三章详细讨论关于分支的概念和操作。)
如果是克隆了一个仓库,此命令会自动将远程仓库归于 origin 名下。所以,git fetch origin 会抓取从你上次克隆以来别人上传到此远程仓库中的所有更新(或是上次 fetch 以来别人提交的更新)。有一点很重要,需要记住,fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。
如果设置了某个分支用于跟踪某个远端仓库的分支(参见下节及第三章的内容),可以使用 git pull 命令自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支。在日常工作中我们经常这么用,既快且好。实际上,默认情况下 git clone 命令本质上就是自动创建了本地的 master 分支用于跟踪远程仓库中的 master 分支(假设远程仓库确实有 master 分支)。所以一般我们运行 git pull,目的都是要从原始克隆的远端仓库中抓取数据后,合并到工作目录中的当前分支。
推送数据到远程仓库
项目进行到一个阶段,要同别人分享目前的成果,可以将本地仓库中的数据推送到远程仓库。实现这个任务的命令很简单: git push [remote-name] [branch-name]。如果要把本地的 master 分支推送到 origin 服务器上(再次说明下,克隆操作会自动使用默认的 master 和 origin 名字),可以运行下面的命令:
$ git push origin master
只有在所克隆的服务器上有写权限,或者同一时刻没有其他人在推数据,这条命令才会如期完成任务。如果在你推数据前,已经有其他人推送了若干更新,那你的推送操作就会被驳回。你必须先把他们的更新抓取到本地,合并到自己的项目中,然后才可以再次推送。有关推送数据到远程仓库的详细内容见第三章。
查看远程仓库信息
我们可以通过命令 git remote show [remote-name] 查看某个远程仓库的详细信息,比如要看所克隆的 origin 仓库,可以运行:
$ git remote show origin
* remote origin
URL: git://github.com/schacon/ticgit.git
Remote branch merged with 'git pull' while on branch master
master
Tracked remote branches
master
ticgit
除了对应的克隆地址外,它还给出了许多额外的信息。它友善地告诉你如果是在 master 分支,就可以用 git pull 命令抓取数据合并到本地。另外还列出了所有处于跟踪状态中的远端分支。
上面的例子非常简单,而随着使用 Git 的深入,git remote show 给出的信息可能会像这样:
$ git remote show origin
* remote origin
URL: git@github.com:defunkt/github.git
Remote branch merged with 'git pull' while on branch issues
issues
Remote branch merged with 'git pull' while on branch master
master
New remote branches (next fetch will store in remotes/origin)
caching
Stale tracking branches (use 'git remote prune')
libwalker
walker2
Tracked remote branches
acl
apiv2
dashboard2
issues
master
postgres
Local branch pushed with 'git push'
master:master
它告诉我们,运行 git push 时缺省推送的分支是什么(译注:最后两行)。它还显示了有哪些远端分支还没有同步到本地(译注:第六行的 caching 分支),哪些已同步到本地的远端分支在远端服务器上已被删除(译注:Stale tracking branches 下面的两个分支),以及运行 git pull 时将自动合并哪些分支(译注:前四行中列出的 issues 和 master 分支)。
远程仓库的删除和重命名
在新版 Git 中可以用 git remote rename 命令修改某个远程仓库在本地的简称,比如想把 pb 改成 paul,可以这么运行:
$ git remote rename pb paul
$ git remote
origin
paul
注意,对远程仓库的重命名,也会使对应的分支名称发生变化,原来的 pb/master 分支现在成了 paul/master。
碰到远端仓库服务器迁移,或者原来的克隆镜像不再使用,又或者某个参与者不再贡献代码,那么需要移除对应的远端仓库,可以运行 git remote rm 命令:
$ git remote rm paul
$ git remote
origin
如何创建/修改远程仓库 + 如何删除远程仓库 + 如何删除远程仓库中的某个文件或文件夹 + 如何使用git将本地仓库连接到多个远程仓库
首先我们来区分一些概念、术语、名词。不然脑子一锅粥,总是晕!!!
博主对此深有体会!从中学到了没事要多总结、多归类!
仓库有本地仓库和远程仓库之分。
仓库都可以叫做服务端(器)。
本地仓库有:Windows、Linux、MacOS。(指的是运行在不同系统下的本地仓库)
远程仓库有:GiuHub(国外)、Gitee码云(国内)、Coding(国内)等等。(说白了就是服务器)
那么服务端可以分为:本地服务端(器)、远程服务端(器)。
连接仓库的方式有:https、SSH等等。
连接仓库的客户端软件(工具)有:Git Bash、Git GUI、Git CMD、GitHub Desktop、小乌龟(TortoiseGit)等等。(https)
连接SSH的客户端软件(工具)有:SecureCRT、Xsheel、Putty、WinSCP、hyper_terminal(超级终端)等等。(SSH)
至少有几十种的排列组合,想想不蒙圈吗?这都是啥啊,我的妈呀,好乱啊!
自然而然,网上就会出现各种各样的教程。你不晕才怪呢!
其实对于我们个人而言,远程仓库就是一个远程的优盘,很多高大上的功能根本用不到。别拍,且听黑泽慢慢说来...
原则:对待我们自己的本地仓库、远程仓库,我们应该删除、创建、修改完全自由!(想想自己的东西都不能随心所欲的控制,何谈别人的呢!)
本演示这里的远程仓库是GitHub(国外)、Gitee码云(国内)、Coding(国内)。
一、首先注册账号
GiuHub(国外):https://github.com/
Gitee码云(国内):https://gitee.com/
Coding(国内):https://coding.net/
如何注册账号,这里不赘述!但是,建议:
GitHub(国外)使用邮箱为:[email protected](为了装逼)
Gitee码云(国内)、Coding(国内)使用国内邮箱:如QQ邮箱、163邮箱等等。
用户名:最好是自己姓名的拼音。(为了方便为了装逼)
昵称:随意。
二、创建远程仓库
GitHub(国外)
步骤一:
步骤二:
步骤三:
Gitee码云(国内)
步骤一:
步骤二:
步骤三:
Coding(国内)
步骤一:
步骤二:
步骤三:
三、删除Github中已有的仓库(即删除远程仓库)
三箭齐发,太累了,以下演示仅以GitHub为例。其余的同理。
如果我们想要删除Github中没有用的仓库,应该如何去做呢?
1、进入到我们需要删除的仓库里面,找到【settings】即仓库设置:
2、然后,在仓库设置里拉到最底部,找到【Danger Zone】即危险区域:
3、点击【Delete this repository】这样就可以删除该仓库了。删除仓库时,会再让我们确认删除的仓库名。防止误删。
四、将远程仓库Clone(下载/复制)到本地
注意1:演示我们使用连接仓库的客户端软件是:Git Bash
注意2:演示我们使用连接仓库的方式是:https
1、远程仓库地址的由来如下:
2、在本地新建一个文件夹test,然后我们在该文件夹中右键 --> Git Bash Here,输入命令:
git clone 远程仓库地址
五、将本地仓库Push(同步/上传)到远程服务器
1、为了演示,我们先在本地仓库DemoUseGithub中新建一些文件夹和文件
2、将本地仓库Push(同步/上传)到远程服务器
六、删除Github中已有的仓库中的某个文件或文件夹(即删除远程仓库中的某个文件或文件夹)
我们知道,在Github上我们只能删除仓库,并不能删除文件或者文件夹,所以只能用命令来解决。
即我们通过删除本地仓库的某个文件或文件夹后,再将本地仓库与远程仓库同步,即可删除远程仓库中的某个文件或文件夹。
6.1、本地仓库和远程仓库同时删除文件或文件夹
1、我们先在本地仓库中删除掉文件a.txt
2、然后执行以下命令,即可删除远程仓库中的文件了
删除远程仓库中的文件夹同理。不在演示。
6.2、只删除远程仓库的文件或文件夹,不删除本地仓库的文件或文件夹
假如我们想要在远程仓库中将文件夹test01删除掉,但在本地仓库中并不想把它删除:
在命令窗口输入以下命令:
注意:
git pull (从远程仓库中pull下来的项目放到的是本地的缓存里。)
git clone 远程仓库地址 (从远程仓库中clone下来的项目放到的是本地的磁盘里。)
七、如何使用git将本地仓库连接到多个远程仓库
1、先在GiuHub(国外)、Gitee码云(国内) 和 Coding(国内) 上分别新建一个远程仓库,参考“二、创建远程仓库”。
2、创建一个本地仓库test,在某一个目录下右键 --> Git Bash Here,演示使用本地仓库test(远程仓库的名称和本地仓库的名称可以不一样,一样是为了方便,不一样也没事
)
其余命令如下:
使用git在本地创建一个本地仓库的过程(位置:在本地桌面上)
$ makdir test // 创建一个本地仓库
$ cd test // 打开这个本地仓库
$ git init // 初始化这个本地仓库
$ touch README.md // 创建README.md文件
$ git add README.md // 更新README.md文件
$ git commit -m ‘first commit‘ // 提交更新,并注释信息“first commit”
$ git remote add origin [email protected]:dedsf/hello-world.git // 连接远程github仓库
$ git push -u origin master // 将本地仓库更新到github项目上去
删除连接的远程仓库
$ git remote rm origin
查看远程仓库地址信息
$ git remote -v
截图如下:
进入本地仓库,设置本地仓库的远程仓库连接。在第一步中已经设置好了本地仓库,并连接上github的远程仓库,现在给本地仓库多连接上几个远程仓库即可。
为了区分方便,把coding上仓库地址代号称之为coding。
为了区分方便,把gitee上仓库地址代号称之为gitee。
将本地仓库推到远程仓库
git push coding master
git push gitee master
具体操作如下图:
注意:都有需要强制推送才行。
八、补充说明
- Git CMD:Git中的Bash是基于CMD的,在CMD的基础上增添一些新的命令与功能。(所以建议在使用的时候,用Bash更加方便,二者切换如下图所示)
- Git GUI:Git GUI是Git Bash的替代品,为Windows用户提供了更简便易懂的图形界面。(但是比不上GitHub Desktop这个桌面版的客户端)
- Git Bash:Git Bash是命令行操作,官方介绍有一句就是“让Linux用户感到宾至如归”。(萌新用户使用了就肥肠憋屈)
“git remote add origin +复制的内容”,就是给本地仓库增加一个远程仓库,刚刚复制的内容就是远程仓库的地址。可以理解为origin是后边一长串仓库地址的代号。github给出的默认名是origin,当然也可以写别的。所以这里解释了为什么我们pull或者push时后面加origin了,这是因为我们在设置本地仓库与远程仓库连接的时候,与代号为origin的远程仓库建立了链接。如下:
git pull origin master
git push origin master
- git push -f origin master or git push origin master -f
本地仓库文件强制上传到远程仓库,把远程的仓库文件覆盖- git pull --rebase origin master
拉取远程的仓库文件把本地的覆盖- dir # 查看有哪些文件夹
- git --help # 帮助命令
- 如果输入git push origin master
提示出错信息:error:failed to push som refs to …….- 解决办法如下:
1、先输入:git pull --rebase origin master // 先把远程服务器github上面的文件拉下来把本地的覆盖
2、再输入:git push origin master
九、参考连接
Git将本地仓库连接多个远程仓库:https://blog.csdn.net/qq_36667170/article/details/79336760
GitHub Desktop操作:https://blog.csdn.net/qq_36667170/article/details/79079750
以上是关于如何使用git创建远程仓库的主要内容,如果未能解决你的问题,请参考以下文章
如何创建/修改远程仓库 + 如何删除远程仓库 + 如何删除远程仓库中的某个文件或文件夹 + 如何使用git将本地仓库连接到多个远程仓库