Git - 远程库的创建与认证

前些日子因为某些原因,需要在windows上创建一个remote仓库。

由于实在是太麻烦而且时间紧急,就直接用了gitstack。

发现这个东西居然需要付费,未认证时只能创建两个用户。

其实对我而言足够了,但不是长久之计。

好在后来又有了一台机器装了linux,这就回到正轨。

因为我也是一直使用别人弄的remote仓库,这次便把创建过程记录下来。

git init是第一步,我经常很理所当然地进行如下操作:

[[email protected] ~]# mkdir myProject
[[email protected] ~]# cd myProject/
[[email protected] myProject]# git init 
Initialized empty Git repository in /root/myProject/.git/
[[email protected] myProject]# touch myProject.md
[[email protected] myProject]# echo "##myProject">>myProject.md 
[[email protected] myProject]# git add .
[[email protected] myProject]# git commit -m"add md file"
[[email protected] myProjet]# git remote add origin ssh://[email protected]/~/myProject/.git
[[email protected] myProjet]# git remote -v
origin  ssh://[email protected]/~/myProject/.git (fetch)
origin  ssh://[email protected]/~/myProject/.git (push)

有一点需要注意,git init还是git init --bare,两者的区别是什么?

加了--bare的就是bare repository嘛 (╯‵□′)╯︵┻━┻

简单来说,bare仓库的意义在于在服务器集中管理,以管理多个开发者的提交。

即使没有加--bare,开发人员仍然可以对该工程进行clone,只不过向这个仓库push时会提示如下信息并失败:

remote: error: refusing to update checked out branch: refs/heads/master

remote: error: By default, updating the current branch in a non-bare repository

remote: error: is denied, because it will make the index and work tree inconsistent

remote: error: with what you pushed, and will require ‘git reset --hard‘ to match

remote: error: the work tree to HEAD.

remote: error:

remote: error: You can set ‘receive.denyCurrentBranch‘ configuration variable to

remote: error: ‘ignore‘ or ‘warn‘ in the remote repository to allow pushing into

remote: error: its current branch; however, this is not recommended unless you

remote: error: arranged to update its work tree to match what you pushed in some

remote: error: other way.

remote: error:

remote: error: To squelch this message and still keep the default behaviour, set

remote: error: ‘receive.denyCurrentBranch‘ configuration variable to ‘refuse‘.

若只是在server中对本地进行push则没有问题,也就是说git init只是给自己一个人玩的。

git init后的目录下包括两样东西,.git和真实的工作目录,而bare仓库下仅仅是.git。

也就是说,上面第一步就错了,对于init,只要在目录下git init --bare就足够了,也不需要remote add。

这样就可以clone并push了

$ git clone [email protected]:myProject
Cloning into ‘myProject‘...
warning: You appear to have cloned an empty repository.
Checking connectivity... done
$ cd myProject/
$ touch pushTest.txt
$ echo "push test">pushTest.txt
$ git add .
warning: LF will be replaced by CRLF in pushTest.txt.
The file will have its original line endings in your working directory.
$ git commit -m"test file"
[master (root-commit) 05f0722] test file
warning: LF will be replaced by CRLF in pushTest.txt.
The file will have its original line endings in your working directory.
 1 file changed, 1 insertion(+)
 create mode 100644 pushTest.txt
$ git push

clone或者push时会提示输入密码,输入个密码也未尝不可,

几个开发者使用一个用户名密码也没什么,每个人一套各自的用户名密码就上几次userAdd也没什么意义。

不如让开发者生成key pair并把公钥给我管理。

可以通过以下命令生成(rsa或者dsa,或者看情况加入其他参数):

ssh-keygen -t rsa

执行后会在用户目录下的.ssh下生成相应密钥,将.pub文件发给管理员即可。

假设管理员拿到的文件名为id_rsa.test.pub并放在用户目录下,执行如下操作加入权限并确认:

[[email protected] ~]# cat id_dsa.test.pub >> ~/.ssh/authorized_keys 
[[email protected] ~]# cd .ssh/
[[email protected] .ssh]# cat authorized_keys

好了,以上就是远程库的创建与认证。

时间: 2024-10-03 23:09:17

Git - 远程库的创建与认证的相关文章

Git版本库的创建(Ubuntu)

在Ubuntu上学习Git随笔. 一. git 仓库的安装 git 在终端用git命令查看Ubuntu是否安装git版本库,如果没有安装,最新版本(Ubuntu18.04)会提示用下面命令进行安装. sudo apt install git 如果老版本用下面几个命令试一下 sudo apt-get install git sudo apt-get install git-core 二.创建一个 git 版本库: 1.选择一个要创建这个文件的位置,例如在  我的 /home/cyp 下创建 ler

git 远程库 创建私钥

1.创建SSH Key.在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步.如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key: $ ssh-keygen -t rsa -C "[email protected]" 你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码. 如果一切顺利的话,可

git 远程仓库 轻松创建

很多时候,为了方面管理我们写的代码,我们采用git 远程仓库来进行管理和备份.防止代码被他人篡改或删除.那如何来进行创建远程仓库呢? 1.我们必须有一个远程服务器端,在这里可以把任意一台电脑作为服务器,创建步骤: [email protected]:~$ pwd /home2/boxbuilder [email protected]:mkdir remote.git 创建一个裸库,方法: [email protected]:~$ git init --bare Initialized empty

git远程库代码版本回滚方法

最近使用git时, 造成了远程库代码需要回滚到之前版本的情况,为了解决这个问题查看了很多资料. 问题产生原因: 提交了错误的版本到远程库. 以下是解决的方法, 供大家参考: 1.对本地代码库进行回滚 git log 查看提交历史,找出要回滚到的commit-id git reset --hard commit-id :回滚到commit-id git reset --hard HEAD~3:将最近3次的提交回滚 2.远程代码库回滚 进行这一步的时候遇到了困难,尝试了多种方法, 查看很多资料都提到

git 远程库和url

我们使用 git remote add origin <url> 来关联远程主机,这个origin就是关联的远程主机名,如果我们想同时关联两个远程主机,我们可以用 git remote add origin2 <url> 来将第二个远程主机名设置为origin2.如果我们想同时将本地git库push到两个远程库,一种方法就是关联两个远程主机,然后push两次,但是还有一种方法可以只需要push一次: 一个远程库可以对应多个地址 首先,关联第一个库 git remote add or

Git学习笔记2——Git版本库的创建

创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录: $ cd s: $ cd Git_Learing $ pwd s/Git_Learning pwd命令用于显示当前目录.在我的windows上,这个仓库位于s/Git_Learning. 在Windows系统中,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文. 第二步,通过git init命令把这个目录变成Git可以管理的仓库: $ git init Initialized empty Git reposi

使用coding云作为git远程库

1.在命令行中创建GIT仓库 mkdir DriveAssistant cd DriveAssistant git init echo "# DriveAssistant" >> README.md git add README.md git commit -m "first commit" git remote add origin https://git.coding.net/crxx/DriveAssistant.git git push -u o

git版本库的创建和yaf框架环境的部署

1.到官网下载git软件.地址: https://git-scm.com/downloads 2.下载tortoisegit软件,安装. 3.创建一个目录,进入该目录.右键,有个git bash 点击,然后进行安装,然后通过命令 git init 把这个目录变成git可以管理的仓库. 这时候你当前testgit目录下会多了一个.git的目录,这个目录是Git来跟踪管理版本的,没事千万不要手动乱改这个目录里面的文件,否则,会把git仓库给破坏了.(在https://github.com/ 这个网址

git远程库与本地联系报错:fatal: Not a git repository (or any of the parent directories): .git

在github上新建了一个仓库,然后相与本地的仓库联系起来 $ git remote add origin https://github.com/lizhong24/mysite2.git fatal: Not a git repository (or any of the parent directories): .git 总是报这个错 产生原因:一般是没有初始化git本地版本管理仓库,所以无法执行git命令 解决方法:操作之前执行以下命令行: git init 然后执行一下git statu