windows下安装git & 在git@OSC上推送代码
第一部分 windows下安装git
1、下载最新版本的git:直接百度“git”,如图所示,点击立即下载。
也可以直接在官网下载最新版本的git:http://www.git-scm.com/download/win(该链接是针对windows系统的下载)
可以根据与自己电脑的情况选择安装包下载
2、下载完成后,双击压缩包。
3、在弹出的安装界面点击“Next”。
4、一路使用默认设置,选择“Next”。
安装过程中,询问是否修改环境变量,选择“Use Git Bash Only”. 即只在msysGit提供的Shell
(NOTE: 这个步骤最好选择第二项“Use Git from the Windows Command Prompt”, 这样在Windows的命令行cmd中也可以运行git命令了。这样会对以后的一些操作带来方便,
一路安装即可。
5、默认安装后,打开命令行模式,输入“git”,即可使用。
第二部分 在git@OSC上推送代码
1、首先,我们向服务器Git@OSC提交代码时,需要用户名和邮箱信息,需要使用如下命令进行配置
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱地址"
这些配置都会存放在用户所在目录下的.gitconfig文件中,比如(C:\Users\Administrator\.gitconfig,这个要看实际的路径,有可能在C:\Windows\System32\config\systemprofile目录下),用Editplus打开可以查看文件内容。
2、配置完成后,如何将eclipse工程HelloWord通过git提交到git@OSC上呢?
(1)首先在eclipse中创建HelloWord工程
(2)我们现切换到这个目录下(是和.classpath和.project同级的那个目录),右击然后选择Git Bash,这是就会弹出Git命令行,并且自动切换到当前所在目录。
(3)我们运行: git init
可以看到会在该目录下生成一个.git的隐藏目录,这说明该目录以及归git进行管理了
输入: git add .
使用: git commit -m "HelloWorld second commit"
命令,将代码提交到HEAD,注意此时还没有提交到服务器(这是我第二次提交,之前试着做了一遍)
(4)我们该如何提交到服务器呢?
首先在Git Bash中输入:
ssh-keygen -t rsa -C "youremail@xxx.com"
然后一路回车,这个会在当前用户文件夹下,生成.ssh 文件夹,里边有个 id_rsa.pub文件,用记事本打开,复制其中的全部内容。
然后打开http://git.oschina.net/keys页面,在该页面中添加公钥,标题可以随便填,公钥就是刚才复制过的内容,然后保存即可
我们在http://git.oschina.net/projects/new中添加一个新项目,比如HelloWolrd(这个名称后面会用到,这个步骤是必须的)
我们先来测试下是否联通:输入命令
ssh -T git@git.oschina.net
然后会通知你输入用户名/密码,该密码就是你的osc账户密码,然后会提示你输入yes/no,输入yes后回车,显示出
Welcome to Git@OSC, 你的用户名!
说明连接成功(密码也可以在http://git.oschina.net/profile/account进行设值)
因为我是第二次登录,所以是直接登录的。
(5)下面就可以提交项目到git仓库中了,我们先输入一个不存在的
git remote add origin http://git.oschina.net/你的用户名/none.git
然后执行
git push origin master
会出现错误,因为在osc@git中根本不存在none这个项目
那我们应该输入
但是会发现不能执行了,这时我们可以打开.git下的config文件,把如下内容删掉
[remote "origin"] url = http://git.oschina.net/whaon/none.git fetch = +refs/heads/*:refs/remotes/origin/*
或者执行
然后再执行
就可以了,这时项目已经被提交到osc@git上了
注意:
问题一:fetch-first
解决:它的意思是说本地和服务器上的代码冲突了,类似svn上的,所以需要先pull,再push。(可能是我之前已经提交过一次了)
先 git pull origin master
再 git push origin master
问题二:non-first-forward
解决:git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去。
这里我使用强推的方式,因为前后两次的代码是完全一样的
强推的语法:
git push -f
最终,我们可以在自己的git中看到已经提交的项目了。
参考资料
1、Git错误non-fast-forward后的冲突解决:http://blog.csdn.net/chain2012/article/details/7476493
2、Git初体验:http://my.oschina.net/dxqr/blog/134811?p=2#comments