1.首先要配置好config
cd .ssh
vim config
2.内容最后一行添加如下文本
Host github.com User git IdentityFile /home/zmzp/.ssh/id_rsa
zmzp@zmzp1:~/.ssh$ ssh-keygen -t rsa -C "[email protected]" Generating public/private rsa key pair. Enter file in which to save the key (/home/zmzp/.ssh/id_rsa): /home/zmzp/.ssh/id_rsa already exists. Overwrite (y/n)? yes Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/zmzp/.ssh/id_rsa. Your public key has been saved in /home/zmzp/.ssh/id_rsa.pub. The key fingerprint is: 3b:ce:87:43:9f:4a:dd:b9:02:8f:2c:cb:bd:d1:c4:0c [email protected] The key's randomart image is: +--[ RSA 2048]----+ | | | | | E | | + | | S + | | o= . . | | o=*o.o | | ..==o* . | | oo*= .. | +-----------------+ zmzp@zmzp1:~/.ssh$ cat id_rea.pub cat: id_rea.pub: 没有那个文件或目录 zmzp@zmzp1:~/.ssh$ cd .ssh bash: cd: .ssh: 没有那个文件或目录 zmzp@zmzp1:~/.ssh$ ls authorized_keys gitlab_rsa id_rsa key_backup config gitlab_rsa.pub id_rsa.pub known_hosts zmzp@zmzp1:~/.ssh$ cat id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCypUS8VEyPDw/mf4Tq4LN35+XdlFP1RdZT/dXZNSZUknt+ih14UE5cffruKKN3rqDRJ2AYDX4z7uRCoQ7QDG0ry+S7/CF38uDivaR87EPjbYrSl0FIjeK27a6wjJ0zfDtm7WTOt/fU+v0uOR5V83XlZNF3edq3o8nb8N5javuv6oNU3jC/Z7Qsd9/JisoLz5DCf22MYl2DlmnkX6am9DaTkHdHy5eKS+Z8lWMfqmijUooM/MXCtRHuXRmoQQOablmA5PUARsYpN7/E8VndgaZpG6yKUFq+UL0U91eTnQ+xd2SmvcmpO3FEcw9Z/nRjUbU6bYjyygu0/1rLJ1APkGO7 [email protected]
title:随便填
key:(粘贴id_rsa.pub的内容)
5.连接github代码库,并解决Permission denied (publickey).问题
zmzp@zmzp1:~/data/lyb_project$ git remote remove origin zmzp@zmzp1:~/data/lyb_project$ git remote show zmzp@zmzp1:~/data/lyb_project$ git remote add origin [email protected]:bobo159357456/bobo.git zmzp@zmzp1:~/data/lyb_project$ git remote show origin * 远程 origin 获取地址:[email protected]:bobo159357456/bobo.git 推送地址:[email protected]:bobo159357456/bobo.git HEAD分支:(unknown) zmzp@zmzp1:~/data/lyb_project$ git pull origin master fatal: Couldn't find remote ref master zmzp@zmzp1:~/data/lyb_project$ git pull -u origin master ^C zmzp@zmzp1:~/data/lyb_project$ git push -u origin master Counting objects: 182, done. Delta compression using up to 4 threads. Compressing objects: 100% (136/136), done. Writing objects: 100% (182/182), 185.88 KiB | 0 bytes/s, done. Total 182 (delta 30), reused 0 (delta 0) To [email protected]:bobo159357456/bobo.git * [new branch] master -> master 分支 master 设置为跟踪来自 origin 的远程分支 master。 zmzp@zmzp1:~/data/lyb_project$
注册GitHub后你就会有0.3G的免费空间,不过只能创建公开项目,这也满足代码分享的目的,我最喜欢的倒是它的代码展示方式,可以直接浏览你的代码,代码是经过高亮、添加行号处理过的,十分漂亮,体验一流,比如这个Webpy托管的地方。而作为想要了解你代码的人,可以选择直接在线浏览自己感兴趣的,也可以直接下载压缩包,或者直接使用Git clone到本地。 因为GitHub是基于Git版本控制系统,所以你上传修改代码什么的,都需要使用Git工具。我这里主要是用来分享和展示代码,所以不想在版本控制方面做过多的阐述,下面就简单讲解一下怎么在GitHub上新建一个项目,还有把自己的代码传上去。下面的前提是你已经注册了GitHub和下载安装了Git——Git下载、Windows版本下载。 上传分享代码 1.在GitHub上建立项目 登录GitHub后,你可以在右边靠中那里找到一个按钮“New Repository”,点击过后,填入项目名称、说明和网址过后就可以创建了,然后会出现一个提示页面,记下类似[email protected]:XXX/XXX.git的地址,这个就是你这个项目的地址了。 2.配置Git以及上传代码 安装Git成功后,如果是Windows下,选择Git Bash,在命令行中完成一切,可能开始有点麻烦,不过就那几条命令行,用几次就记住啦。首先初始设置Git: 1 git config --global user.name "Your Real Name" 2 git config --global user.email [email protected] 然后开始进行最麻烦的一步了,你需要上传文件到GitHub的Git系统上,得需要一个SSH密匙来认证,下面就开始生成密钥和提交密钥。打开Git Bash,创建SSH key: 1 ssh-keygen -C '[email protected]' -t rsa 然后要你输入SSH密匙的存放位置,可以不管,直接回车使用默认路径。再输入你想要的密码,SSH key就生成了。现在你需要将这个Key提交到GitHub,首先打开Key保存的位置,里面会有三个文件,找到id_rsa.pub,用文本编辑器打开,复制里面的全部字符。到GitHub,在右上方工具栏里找到Account Settings。在这个页面上有一个SSH Public Keys标签,选择Add another public key。Title可以随便填一个,Key就粘贴刚才的字符,提交。 完成这些工作后,就可以上传自己的代码了。找到自己要分享上传的代码文件夹,右击选择Git Bash,或者在Git Bash中进入这个文件夹。建立一个仓库: 1 git init 选择要添加进仓库的文件: 1 git add . 一般如果你想分享这个文件夹里的所有代码,就在 add后面加“.”,上面的例子就是这样,如果传指定的,只需要把“.”改为文件名即可,现在只是选择了要加入仓库的文件,下面才是添加进入仓库: 1 git commit -m 'Test' -m后面跟一个参数,表示说明,将代码提交到GitHub后,将会在代码文件信息上显示这个说明,如下图标记的地方。 搞了这么久,现在才开始把本地仓库上传到GitHub了,下面两行命令搞定问题: 1 2 git remote add origin [email protected]:XXX/XXX.git 3 git push -u origin master 这个[email protected]:XXX/XXX.git就是上面创建项目是生成的地址。现在打开你的项目网址,你就可以发现你的代码已经展示出来了。如果你要更新代码的话,就重复上面的吧。 如果提交了敏感信息,比如代码中设置的自己的密码什么的忘删除就上传上去了怎么办?重新修改过后上传依然有历史记录,而使用Git删除历史记录貌似很麻烦,于是就采用删除项目吧,删除了再重新上传。删除项目需要在GitHub网站上右上方找到admin按钮,进去后右边最下面有个删除的按钮,这样就可以删除了。 一些可能遇到的问题解决: 如果输入$ git remote add origin [email protected]:djqiang(github帐号名)/gitdemo(项目名).git 提示出错信息:fatal: remote origin already exists. 解决办法如下: 1、先输入$ git remote rm origin 2、再输入$ git remote add origin [email protected]: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\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc 5、找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行删掉就好了! 如果输入$ ssh -T [email protected] 出现错误提示: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文件的内容时有没有产生多余的空格或空行,有些编辑器会帮你添加这些的。 如果输入$ 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 [email protected]:djqiang/gitdemo.git 使用git在本地创建一个项目的过程 $ makdir ~/hello-world //创建一个项目hello-world $ cd ~/hello-world //打开这个项目 $ git init //初始化 $ touch README $ git add README //更新README文件 $ git commit -m ‘first commit’ //提交更新,并注释信息“first commit” $ git remote add origin [email protected]:defnngj/hello-world.git //连接远程github项目 $ git push -u origin master //将本地项目更新到github项目上去
1_创建公钥私钥
1.键入命令:ssh-keygen -t rsa -C "[email protected]"
2.当提示"Enter file in which to save the key (/home/zmzp/.ssh/id_rsa)"时
:/home/zmzp/.ssh/coding_rsa 回车
3.一路回车即可生成公钥密钥
2_配置config
1.修改配置文件输入:vi config内容:
Host coding.net
User git
IdentityFile /home/zmzp/.ssh/codingid_rsa
3_链接推送地址
1.修改链接推送地址
zmzp@zmzp1:~/data/lyb_project$ git remote add origin [email protected]:bobo159357456/bobo.git fatal: 远程 origin 已经存在。 zmzp@zmzp1:~/data/lyb_project$ git remote remove origin zmzp@zmzp1:~/data/lyb_project$ git remote show zmzp@zmzp1:~/data/lyb_project$ git remote show origin fatal: 'origin' does not appear to be a git repository fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. zmzp@zmzp1:~/data/lyb_project$ git remote add origin [email protected]:bobo159357456/bobo.git zmzp@zmzp1:~/data/lyb_project$ git remote show origin zmzp@zmzp1:~/data/lyb_project$ git remote show origin * 远程 origin 获取地址:[email protected]:bobo159357456/bobo.git 推送地址:[email protected]:bobo159357456/bobo.git HEAD分支:master 远程分支: master 新的(下一次获取将存储于 remotes/origin) 为 'git push' 配置的本地引用: master 推送至 master (本地已过时)
成功!
1_git代码仓库不同步
1.更新代码库
输入 git pull出现:error: Your local changes to the following files would be overwritten by merge:app/calendar/note.jsapp/schedule/scheduleview.jsPlease, commit your changes or stash them before you can merge.2.解决方案
执行git checkout -f,然后再执行git pull重新checkout再执行git pull即可