简述:本文章针对git入门,没有涉及太多的命令,实现了基础的github注册,创建仓库,创建组织,建立远程,多个ssh链接,将code推向不同的仓库等
注册github账号
git官网地址:https://github.com,打开官网,注册一个账户,在右上角点击加号,可以手动创建一个仓库或者组织
创建仓库
点击右上角的加号,可以实现创建一个仓库或者组织,创建一个仓库后可以得到一个git地址,点击右上角的Setting设置,加入开发人员的sshkey,实现团队开发
创建组织
生成组织,可以在member中搜索人员,但是此处的人员加入不代表代码人员,只是一个介绍
生成ssh秘钥
单个ssh秘钥
设置Git的user name和email:
$ git config --global user.name "xuhaiyan"
$ git config --global user.email "haiyan.xu.vip@gmail.com"
$ git config --global user.name "xuhaiyan"
$ git config --global user.email "haiyan.xu.vip@gmail.com"
生成SSH密钥过程:
1.查看是否已经有了ssh密钥:cd ~/.ssh
如果没有密钥则不会有此文件夹,有则备份删除
2.生存密钥:
$ ssh-keygen -t rsa -C “haiyan.xu.vip@gmail.com”##自己的邮箱地址
按3个回车,密码为空。 ##第一个回车代表名字为空,采用默认的id_rsa,后两个为密码空
Your identification has been saved in /home/tekkub/.ssh/id_rsa.
Your public key has been saved in /home/tekkub/.ssh/id_rsa.pub.
The key fingerprint is:
………………
最后得到了两个文件:id_rsa和id_rsa.pub
1.查看是否已经有了ssh密钥:cd ~/.ssh
如果没有密钥则不会有此文件夹,有则备份删除
2.生存密钥:
$ ssh-keygen -t rsa -C “haiyan.xu.vip@gmail.com”##自己的邮箱地址
按3个回车,密码为空。 ##第一个回车代表名字为空,采用默认的id_rsa,后两个为密码空
Your identification has been saved in /home/tekkub/.ssh/id_rsa.
Your public key has been saved in /home/tekkub/.ssh/id_rsa.pub.
The key fingerprint is:
………………
最后得到了两个文件:id_rsa和id_rsa.pub
最后将id_rsa.pub中的公钥添加到github仓库中
多个ssh秘钥链接仓库
一台电脑上有一个ssh key,在github上提交代码,由于其他原因你可能会在一台电脑上提交到不同的github上,怎么办呢...
假设你电脑上一个ssh key都没有,如果有默认的一个了,请直接生成第二个.
同样适用上面的命令:$ ssh-keygen -t rsa -C “haiyan.xu.vip@gmail.com”
这次不要一路回车了,给这个文件起一个名字 不然默认的话就覆盖了之前生成的第一个
在输入上面的命令后,输入一个自己的sshkey的名字,比如只输入一个s即可,一路回车
那么在你的c:/user/user/.ssh目录下可以看到这样的目录结果
这里我们在该目录下写一个config的文件,其中的内容是
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
如果要使用第二个ssh,我们可以将最后的is_rsa更改为s即可
下面使用命令
ssh -T git@github.com
进行测试,可以收到欢迎的语句,并且说明了该sshkey连接了哪一个仓库地址
此处的实现方式其实很简单,生成第二个秘钥到时候,换一个名字,在config配置文件中做一个指定配置即可;
实现远程仓库
我们随便找一个目录,写入一个文件夹,在该文件夹下,我们执行命令
touch README.md
git init ##创建并初始化本地仓库
git add README.md
git commit -m "commit comment"
git remote add origin git@github.com/youraddress ##将远程仓库与本地仓库关联
git push -u origin master
##由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
克隆
当吧你的sshkey公钥存入了github中,就可以开始代码克隆和提交了
$git clone git@github.com:youraddress
当将代码克隆下来,可以进行修改,add/commit/pull/push等操作了
但是我这边是远程仓库,碰到了这样的一个问题,每次pull的时候呢都需要在pull后面加上 --rebase的参数,解决方法如下
1.提示错误:
2.解决方法:
原来发现在我们的仓库中,.git文件下,有个config文件,打开看到是这样的
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
hideDotFiles = dotGitOnly
[remote "origin"]
url = git@github.com:zbwd/zb.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
rebase = true
我们将最后一行 rebase = true 改为:
remote = origin
merge = refs/heads/master
好了,现在可以正常的执行四个命令进行代码的控制了,到此结束