从远程clone三个饭馆

让自身来教你什么搭建属于自身的git服务器,github账号切换以及https和SSH上传方式相比较。1、注册github账号。
2、创造个人的github仓库,如图,

准备:

1台Linux服务器(本文示例使用的是Ali云CentOS 7.0)

在那边自个儿就不介绍怎么着是git!什么是github了!给大家两篇参考小说,先学会git再学github

。。。知识浅薄 

金沙注册送58 1

部分造访户端的您大概不了解的架子:

Linux用户、组、权限难点以及命令的用法
SSH协议相关

其实,那一个姿势在《鸟哥的Linux私人住房菜》一书中有格外详尽的表达,分外推荐。然而通读此书对我们的话时间开支略高。而且一旦不是每一天都要用真的很难记住。所以,本文只简轻巧单介绍那几个你在搭建git服务器的历程中只怕要求明白的架子。

闲话少说,书归正传。
我们暗中认可你有1台Linux服务器,并且了然root帐号和密码,以下有所命令中须求替换的一些自个儿会用中文占为,真正的Linux命令是不容许有汉语的。#->代表命令提醒符。

率先,大家必要利用终端链接到服务器:

#-> ssh 你的服务器IP

日后,服务器会提示您输入账号和密码。此处须要输入root的账号和密码,因为我们要在服务器上安装git以及开创连锁用户,须求用到root权限。

相关姿势壹,ssh命令、协议:
ssh命令表示连接到服务器,能够以域名称叫参数,或然以服务器IP为参数。借使服务器ssh协议监听端口不是默许的2二须求充裕-p选项前面输入要接二连三服务器的端口号。
ssh协议参见维基百科:https://zh.wikipedia.org/wiki/Secure\_Shell

签到成功后,我们首先要设置git,有的服务器默许是曾经设置的:

#-> yum install git

yum这里就不详细介绍了,它是一款安装软件的工具,会自动下载重视包,免得我们温馨四海找。并且自动安装软件。

安装完结,大家须要先创立用户组,成立用户组的目标其实是为了调整某一类用户的权能。即便大家要求为设计部搭建3个git服务器,那大家这里要求输入指令:

#-> groupadd 组名称

创办组达成后大家须求创制多少个例外的用户:

#-> user add -M 用户名称一
#-> user add -M 用户名称贰
… …

创办好用户之后我们还必要把用户增加到前边创立的组中:

#-> usermod -G 组名称 用户名称1
#-> usermod -G 组名称 用户名称二
… …

useradd是增多系统用户的命令,借使不加-M的选项则成立用户的时候会活动在/home目录下创办3个和用户名同样的目录,这些目录平日被称作该用户的家目录,该用户在该目录下具有读写权限。权限难点会在末端进一步介绍。在此,大家的指标是搭建git服务器,并不想给用户除却git访问以外其余的权限,所以这里运用-M选项让系统不给该用户创立本身的家目录。
usermod是用户管理命令,-G表示将用户增进到有个别分组。

为了保留秘钥登6的表明音信,所以大家在/home目录下开创1个国有家目录:

#-> midair 组目录名称

笔者们还亟需禁止使用掉别的用户ssh到服务器,只留下用户git相关权限,并且修改用户的家目录:

#-> vim /etc/passwd

找到所创办用户的那一行:

用户名称:x:1000:一千::/home/用户名称:/bin/bash

将/bin/bash替换来git-shell的门道(小编的服务器是:/usr/bin/git-shell,能够经过#->
which git-shell来查看git-shell所在渠道)
将/home/用户名称替换到/home/组目录名称

我们重新进入公共的家目录:

#-> cd /home/组目录名称

创制咱们想要的git商旅:

#-> mkdir 新客栈名称.git

进去该目录:

#-> cd 新酒馆名称.git

接纳git命令来创制一个裸货仓:

#-> git –bare unit

迄今,大家早已在服务器上做到了三个git仓库的创导。大家能够在客户端clone该堆栈:

#-> git clone 刚刚创造的用户名称@你的服务器IP:新宾馆名称.git

就算如此1度clone出仓库,不过此时大家是不可能push的,因为新创设的用户此时并从未写权限,大家须要回到服务器:

#-> cd /home

金沙注册送58,修改组目录所属的分组:

#-> chgrp -安德拉 组目录名称

-福睿斯表示递归修改全数子目录所属分组
下一场修改组目录的权力:

#-> chmod -牧马人 775 组目录名称

此处-CR-V同样表示递归修改权限
775表示权限,Linux下文件/文件夹权限分为二种,文件具备者权限、文件所属组成员权限、以及其余人的权能。775三人分别对应那两种权限。每一种人中,四意味可读,二意味可写,1表示可实行(文件夹的话代表可进入),最终相加的和代表权限集合。这里大家设置为组目录以及子目录的权柄为77五意味着所具有者可读、可写、可进行;所属组成员可读、可写、可进行;其余人可读、可施行,可是不得写。
那时候大家重新回到客户端,就能够push旅舍的改动到服务器了。

git简明教程
(http://rogerdudler.github.io/git-guide/index.zh.html)

git clone都开掘貌似用的不顺

860530-20160716230314826-613204642.png

多谢阅读,迎接我们和笔者联合来探究任何风趣的工作。E-mail:salo@eitsh.com

github简明教程
(http://www.runoob.com/w3cnote/git-guide.html)

因为笔者有几个git账号

还足以平素点击右上角的“”+“”增多,

废话少说,那篇小说首要讲什么吧?

唯独作者也不知情就是git账号是怎么保存在巅峰上的

金沙注册送58 2

那篇作品正是索求一下github的https和SSH情势上传注意点,以及你想换一个github账号恐怕会遇上的难题。

故而当自己急需用二个新的github账号来clone远程酒馆的时候
作者须要新换贰个用户名跟密码

三、创立和睦的Repository,如图:

说美赞臣下,以下测试均在Mac计算机上

 

金沙注册送58 3

先是说一下账号切换

率先笔者前日有三个github账号叫A,但是本身未来不想用那么些账号了,于是作者在github上面重新申请了叁个账号叫B,我在B账号下新建了二个客栈,然后使用命令行上传作者的地点代码出现以下错误

remote: Permission to B/test.git denied to A
fatal: unable to access 'https://github.com/B/test/': The requested eror: 403

这些意思是不允许账号A做客账号B下面的test仓库。

本身利用git config命令退换了本人的用户名和库房 ,一样的一无可取。

可是此时笔者动用Github
Desktop把上边登六的账号换到B,首先把test仓库克隆下来,然后使用Github
Desktop上传代码 成功

那注脚了怎么????

  • 因为Github Desktop有大家登陆的用户名和密码,所以上传的时候Github Desktop会活动提交B的用户名和密码,
  • 而当大家选取命令行的时候,Mac会一贯选拔A其1用户名和密码上传而不是B,那是干什么呢?

案由是MacComputer上的钥匙串,每一回大家设置好用户名和密码都会自动累积到Mac的钥匙串上边,每一回使用命令行上传代码的时候,Mac会活动填写A账号和密码
此刻笔者只须要开荒钥匙串,然后寻觅git,把关于Github的账号密码都剔除掉。

接下来继续利用命令行上传代码那时候会须求让大家设置上传的用户名和密码,设置为B本条账户就行了。

再有1种上传成功的不2秘诀正是把A本条账号增加到B账号下的test旅社下的Collaborators如此不用更动Mac上的用户名和密码也能够上传成功。

世家兴许疑问作者怎么未有配置SSH就能够上传代码?
因为地点那些点子都以利用的https格局上传的。

不过难题来了。。。

四、新建实现后会进入类似于上边包车型地铁页面,复制创设饭店的地址,如图:

账号上传方式搜求

Github有二种上传代码的办法

  • https
  • SSH

大家也足以看一下那二种艺术的UOdysseyL是分化的。

SSH方式(git@github.com:xxx/test.git)
https方式
(https://github.com/xxx/test.git)

https格局提交代码的二种办法:

  1. 先是选取git clone后面跟https形式把宾馆克隆下来,然后交给代码(clone前边只好跟https的U奥德赛L)
  2. 接纳Github Desktop那么些软件提交

行使SSH方式提交代码:

git init
git remote add origin git@github.com:TrackyTian/testSSH.git //连接远程仓库
git pull --rebase origin master //把远程仓库拉下来
git add . //将仓库所有文件都添加到版本控制库中
git commit -m "赋值Person" //提交
git push origin master //将代码添加到master分支

自家计算以下多少个情景:

B账户要求往B账户下的库房提交代码

  • 能够运用https格局,不要求配备SSH
  • 若是运用SSH情势提交,然而未有配置在B账户下安顿SSH的话,会产出就像上边包车型大巴荒谬,那时候增加一下本机的SSH

金沙注册送58 4

解释一下SSH:大家只要求把SSH看成1台微型计算机的通行证,每一个Computer都以固定的,把SSH配置到哪些账户,就象征能够利用那台微型Computer给那个账户下的饭馆上传代码!

借使本身想要给外人的旅馆提交代码

  • 自己要求把自家本机的SSH配置到旁人账户下,然后利用SSH格局提交代码
  • 把本人的账号加多到十二分仓库的Collaborators,直接运用https方式交给

本身不知情怎么在 git clone的命令里面增加用户名跟密码

金沙注册送58 5

总结

  1. 行使https形式交给的不须求增添SSH,不过利用SSH格局提交的必供给加多本机的SSH
  2. A账户想要给A账户下的库房提交代码,直接选拔https格局就行
  3. A账户想要给B账户下的仓库提交代码,一.增添Collaborators选拔https方式只怕二.增添SSH,使用SSH情势提交。

请我们多关切自身的博客
(http://www.codertian.com)

下一场搜索了一晃 哦 

伍、展开本地git命令窗口照旧cmd命令窗口,cd到你存放项目标根目录下,并试行一下命令行:
git clone
酒馆地址(下面一步复制出来的地方),如下图,是本身复制小编创设的库房地址:

git clone

金沙注册送58 6

留意早晚即使一个仓房 正是.git路线

6、张开项目文件夹,会意识刚才在github里面新建的文书都设有本地了,如图:

 

金沙注册送58 7

纵然是宾馆下的1个文件夹
作者试了相似是十三分的

快要上传的文书拷贝到这一个目录下,拷贝实现后,再实行下命令git
status,看git是不是拿走到文件的改动,如图:

那么难点来了
怎么把客栈下的1个文书夹下拉下来呢

金沙注册送58 8

 

七、再试行命令git add
–all,将有所文件都增多到货仓中,假设想增添某一个文件,则将后边的–all换来你要交给的文本名就可以。

git clone http://{your_user_name}@git.tianmaying.com/sample-codes/full-stack-java-web-development.git tianmaying_repo

八、然后还亟需将大增的文本commit到酒馆里去,试行命令git commmit -m
“注释语句”,如图:

金沙注册送58 9

tianmaying_repo这个参数是说把远程仓库的代码放到本地的tianmaying_repo目录





想问下git下拉代码到本地 只能把整个仓库下拉下来吗?下拉项目的某个文件夹的命令是什么命令呢?

git clone -b (某个分支) url=====>拉取某个分支的代码

玖、此时还没完,还要将commit的代码push到长途分支,由于大家本地只有master分支,所以大家可以一直奉行命令git
push,如图:

金沙注册送58 10

会让你输入用户名和密码,你输入你github登陆的用户名和密码就能够。


此时,刷新网页上新建仓库的地点,你就能晤到新增添的文本都早已打响上传到git上去了:

金沙注册送58 11


配置Git

 1、首先需要在本地创建ssh key(可以理解创建密钥文件)
 $** ssh-keygen -t rsa -C "[your_email@youremail.com](http://blog.sina.com.cn/s/blog_63eb3eec0101cf6x.htmlmailto:your_email@youremail.com)"**  //双引号里面是自己的邮箱,需要是自己在github上面注册的邮箱,这一操作后要求确认路径和输入密码,密码建议与github密码一致,这样比较好记!一路回车键,成功的话,根据命令显示的地址找出.ssh文件夹,进去,找到id_rsa.pub,复制里面的key,登录github,进入**Setting ->  SSH keys**,点击Add SSH Key,将复制的key粘贴进去,title随便填!
 2、为了验证是否成功,在git bash输入 $ **ssh -T [git@github.com](http://blog.sina.com.cn/s/blog_63eb3eec0101cf6x.htmlmailto:git@github.com) **,如果是第一次的话,会提示是否continue,输入yes,会看到**You’ve successfully authenticated, but GitHub does not provide shell access**,那么证明成功连接github!
 3、接下来还需要配置一下username和email,之后每次commit都会使用到的: 
 $ **git config --global user.name "your name"** //需要和github上名称一致
 $ **git config --global user.email "[your_email@youremail.com](http://blog.sina.com.cn/s/blog_63eb3eec0101cf6x.htmlmailto:your_email@youremail.com)"** //需要和github上注册邮箱一致

Git常用命令行

 git clone ...  //克隆别人的项目
 创建一个项目名为angular文件夹     
 进入这个angular项目     
 $ git init             //初始化      
 $ git add README.md       //更新README文件 
 $ git add * //更新所有文件     
 $ git commit -m 'first commit'     //提交更新,并注释信息“one commit”,第一次提交     
 $ git remote add origin [git@github.com:xiaobin5201314/angular.git](http://blog.csdn.net/steven6977/article/details/11268675mailto:git@github.com:defnngj/hello-world.git)     //第一次需要连接远程github项目     $ git push -u origin master     //将本地项目更新到github项目上去,或是(git push origin master)
 $ git pull -u origin master     //将github项目更新到本地,或是(git pull origin master)
 $ git checkout -b feature_x   //创建一个叫做“feature_x”的分支,并切换过去
 $ git checkout master  //切换回主分支
 $ git branch -d feature_x  //把新建的分支删掉
 $ git push origin <branch> //将分支推送到远端仓库**
 $  git merge <branch> //将某个分支合并到master

科学普及错误

问题1:

fatal: destination path '.' already exists and is not an empty directory.

消除方法如下:

1. 进入非空目录,假设是 /workdir/proj1
2. git clone --no-checkout https://git.oschina.net/NextApp/platform.git tmp
3. mv tmp/.git .   #将 tmp 目录下的 .git 目录移到当前目录
4. rmdir tmp
5. git reset --hard HEAD

问题2:

 如果输入$ git remote add origin [git@github.com:xiaobin5201314(github帐号名)/gitdemo(项目名).git](http://blog.csdn.net/steven6977/article/details/11268675mailto:git@github.com:djqiang/gitdemo.git) 
提示出错信息:fatal: remote origin already exists.

消除措施如下:

1、先输入$ git remote rm origin

2、再输入$ git remote add origin [git@github.com:xiaobin5201314/gitdemo.git](http://blog.csdn.net/steven6977/article/details/11268675mailto:git@github.com:djqiang/gitdemo.git) 就不会报错了!

3、如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section 'remote.origin'. 我们需要修改gitconfig文件的内容

4、找到你的github的安装路径,我的是C:\Users\ASUS\AppData\Local\GitHub\angular_d14f7551eeb4aea0e4ae9fcd3358bd96420bb5c8\etc

5、找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行 删掉就好了!

问题3:

如果输入$ ssh -T [git@github.com](http://blog.csdn.net/steven6977/article/details/11268675mailto:git@github.com)    出现错误提示:Permission denied (publickey).因为新生成的key不能加入ssh就会导致连接不上github,可以重新生成一个。

消除方法如下:

1、先输入$ ssh-agent,再输入$ ssh-add ~/.ssh/id_key,这样就可以了。

2、如果还是不行的话,输入ssh-add ~/.ssh/id_key 命令后出现报错Could not open a connection to your authentication agent.解决方法是key用Git Gui的ssh工具生成,这样生成的时候key就直接保存在ssh中了,不需要再ssh-add命令加入了,其它的user,token等配置都用命令行来做。

3、最好检查一下在你复制id_rsa.pub文件的内容时有没有产生多余的空格或空行,有些编辑器会帮你添加这些的。

问题4:

如果输入$ git push origin master
提示出错信息:error:failed to push som refs to .......

消除措施如下:

1、先输入$ git pull origin master //先把远程服务器github上面的文件拉下来
2、再输入$ git push origin master
3、如果出现报错 fatal: Couldn't find remote ref master或者fatal: 'origin' does not appear to be a git repository以及fatal: Could not read from remote repository.
4、则需要重新输入$ git remote add origin[git@github.com:xiaobin5201314/gitdemo.git](http://blog.csdn.net/steven6977/article/details/11268675mailto:git@github.com:djqiang/gitdemo.git)

相关文章

网站地图xml地图