[转] git使用初涉

来源:互联网 发布:webclient没执行js 编辑:程序博客网 时间:2024/05/22 20:26
写这篇文章的目的是让新手能够操作git管理自己的代码,可能你知道git的各种命令但是对其使用顺序并不熟,比如我。。。。。。所以有必要整合一篇关于命令使用步骤的文章,也没询问让不让转载,但我潜意识里非转载不可,可能会惹上官司,珍重。参考文章链接:osChina:http://my.oschina.net/u/855386/blog/353615csdn:http://blog.csdn.net/luckyyulin/article/details/21090905iteyes:http://eksliang.iteye.com/blog/2249472

一、准备工作:
1>注册账号:
只要是能托管代码的网站都可以,osChina/bitbucket/github等等,在此以github为例。

2>创建repository:
添上一些关于该项目的信息。

3>下载Git并安装:
傻瓜式下一步,并不需要配置路径.

这是我下载的windows版git
安装完git会有git bash和git GUI两种使用方式,建议使用git bash,这样多用一点git的命令行有助于学习。

备注:我安装的git Bash经常提示git命令错误,找不到git文件等等,我的做法是先打开git GUI–点击版本库–选择git Bash项,再cd到你项目的路径下就可以使用git bash了。

二、本机远程仓库进行关联
1>在本机创建SSH Key

$ ssh-keygen -t rsa -C "eksliang@163.com" 

一直回车,会在本地生产~/.ssh文件夹,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

2>登录github让本机与github进行关联

这里写图片描述
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容;
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

三、在github上新建仓库(repository)

这里写图片描述
此时仓库还是空的,GitHub告诉我们,可以有2种方式进行创建,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。如下所示:

这里写图片描述

现在,我们根据GitHub的提示,在本地仓库下运行命令,把本地仓库的内容推送到GitHub仓库。
Java代码 收藏代码

git remote add origin git@github.com:ickess/demo.git  git push -u origin master

命令解释如下:
添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库(建议不要改动,跟整个行业同步起来)
本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,以后的推送时可以去掉-u参数。推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样。

从现在起,只要本地作了提交,就可以通过命令,将本地的最新代码推送至远程仓库

$ git push origin master

四、github删除仓库
这里写图片描述

这里写图片描述

五、上传本地项目到远程仓库基本步骤:
1>

 $ ssh-keygen -t rsa -C "your_email@youremail.com"//配置ssh key

后面的your_email@youremail.com改为你的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key。回到github,进入Account Settings,左边选择SSH Keys,Add SSH Key,title随便填,粘贴key。
这里写图片描述

2>

$ ssh -T git@github.com//验证是否配置成功

这里写图片描述
3>

 $git config --global user.name "your name"//设置用户名
$git config --global user.email "your_email@youremail.com"//设置密码,以后要用,记住

4>
$ git init//在当前项目目录中生成本地git管理,并建立一个隐藏.git目录

5>
git add . //添加当前目录中的所有文件到索引

6>
git commit -m “first commit” //提交到本地源码库,并附加提交注释

7>
git remote add origin https://github.com/chape/test.git //添加到远程项目,别名为origin(origun后面的地址是你自己项目在github上的地址)
具体使用

这里写图片描述

8>
git push -u origin master //把本地源码库push到github 别名为origin的远程项目中,确认提交

六、从远程库clone到本地:
首先fork你要下载的项目,找到要下载的git地址,使用命令:

$ git clone git@github:username/JavaDemo.git//回车之后有一个输入密码的过程

$ git remote add upstream git@github.com/username/JavaDemo.git//保持代码的同步

七、更新代码:

1>$cd /d/TVCloud2>$git pull //请一定先把之前的代码pull下来之后再push 3>$git add .//.表示提交该文件夹下的全部文件4>$git commit -m "update test" //检测文件改动并附加提交注释4>$git push -u origin master//提交修改到项目主线

八、常用命令:

1>$git push origin master //把本地源码库push到Github上2>$git pull origin master//从Github上pull到本地源码库3>$git config --list //查看配置信息4>$git status //查看项目状态信息5>$git branch //查看项目分支6>$git checkout -b host//添加一个名为host的分支7>$git checkout master //切换到主干8>$git merge host //合并分支host到主干9>$git branch -d host //删除分支host

九、常见错误:
常见错误:
1.error:failed to push some refs to …
当要push代码到git时,出现提示:
error:failed to push some refs to …
Dealing with “non-fast-forward” errors
From time to time you may encounter this error while pushing:
$ git push origin master
To ../remote/
! [rejected] master -> master (non-fast forward)
error: failed to push some refs to ‘../remote/’
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again. See the ‘non-fast forward’
section of ‘git push –help’ for details.

问题(Non-fast-forward)的出现原因在于:git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去。于是你有2个选择方式:

强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容
git push -f

  1. 先把git的东西fetch到你本地然后merge后再push
    gitfetch git merge
    这2句命令等价于
    gitpull[branchmaster](.git/config)[branchmaster]remote=originmerge=refs/heads/mastergit2:1masterbranch,remoteorigin2masterbranch使gitpullremotebranchgitremoteoriginmergemasterbranchconfigbush git config branch.master.remote origin
    $ git config branch.master.merge refs/heads/master
    之后再重新git pull下。最后git push你的代码吧。
0 0
原创粉丝点击