【ZZ】Git连接到本身的Github简单的开始

好长时间没上来弄东西了,今天回来先开始弄下Git,以后再继续写uboot与kernel的编译,在版本控制下更加宏观地观察每次的变化。

一、在ubuntu中安装git
$ sudo apt-get install git git-core

二、配置本机的git
$ git config --global user.name "abcd"
$ git config --global user.email abcd@efgh.com

三、生成密钥
$ ssh-keygen -t rsa -C "abcd@efgh.com" //邮箱同上

四、提交密钥
vim /home/linx/.ssh/id_rsa.pub //复制里面的密钥

到github网页中登录本身的帐号,而后再account setting中,找到SSH KEY讲复制的密钥加入(须要再次输入github的密码)

五、检验是否连接上了github
$ ssh git@github.com
//正常状况下,回显以下
PTY allocation request failed on channel 0
Hi plinx! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

六、首次推送

$ mkdir tmp //建立推送目录
$ cd tmp //进入推送目录 
$ git init //设置该目录为推送
$ touch README //生成readme
$ git add README //加入修改列表
$ git commit -m 'first commit' //递交修改声明
$ git remote add origin git@github.com:abcd/tmp.git //为远程Git改名为origin
$ git push -u origin master //推送这次修改

而后各类问题从这里开始了,如下谈一下解决的方法:


问题一:
ERROR: Repository not found.
这个问题是由于在你推送的github帐户中,并无这个Repository。

  解决方法:

  1) 检查本身的github中的Repository,检查本身建立的目录,必需要二者一致

  2) 先git clone下github中的Repository,而后再进行更改,这样就必定一致了

问题二:
Agent admitted failure to sign using the key. 
Permission denied (publickey)
这个问题是由于你的ssh key并无加入到你想git的github帐户的ssh key中,因此没有访问权限。

  解决方法:

  1)从新拷贝一份当前的~/.ssh/id_rsa.pub中的ssh key到github中添加;

  2)先删除~/.ssh/in_rsa*文件,而后从新ssh-keygen一份sshkey来生成密钥,而后复制到github,接着ssh连接github来检验是否成功联通。

问题三:
//出现以下提示
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to ...


  这个问题是由于,github中已经有了这个代码,不容许你覆盖它。

  解决方法:

  1)强制推送,通常不推荐!
    
$ git push -f


  2)
$ git pull


  而后将出现其余提示,具体意思是说branch与merge未指定,git没法选择要推送的分支。

  能够经过修改 .git/config文件中的下列内容
[branch "master"]
remote = origin
merge = refs/heads/master


  也能够直接命令行修改
$ git config branch.master.remote origin
$ git config branch.master.merge ref/heads/master


  目前了解到的也就这三个问题了。

  以后就能够成功得推送了。


一、先查看当前开发分支
python

$ cat .git/HEAD
ref: refs/heads/master

这里的master是默认分支。

二、查看当前状态
$ git status
# On branch master
nothing to commit (working directory clean)


目前是无推送状态,即便你推送了一个未作任何改变的文件,当前状态仍未无推送状态。

进入README添加一句以后

$ git add README
//以后有两种方法填写推送信息
//比较简单的一种,直接写入推送信息,-m 就是 message 的意思
$ git commit -m 'message you want to write.'
//比较麻烦的一种
$ git commit
//进入GNU nano编辑器,底行有操做提示

将提示
[master bc30d5d] updated the status.
1 file changed, 1 insertion(+)

而后再看一下status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)

三、git中有日志能够查看推送记录
$ git log


四、检查不一样
$ git diff
//这项操做时要在添加推送以前执行的,不然就看不出哪里不一样了


  五、建立分支

git branch test0.1 //建立一个test0.1分支
git checkout test0.1 //进入这个分支中来
git branch //查看当前分支状况,所在分支前面有'*'号
git add -A //将本次修改的全部内容都加入修改列表
git commit -m "commit all" //提交说明
git push -u origin test0.1 //将这次修改提交到分支test0.1中去



  六、只对项目精简了而没有增长内容
$ git commit -a 
$ git push -u origin code_ver0.1
//分支和帐户请勿对号入座
相关文章
相关标签/搜索