github\code.china创建项目,git解决办法
创建项目
安装git
1.要使用CODE.CHINA,需要先安装git工具。
git工具下载:https://git-scm.com/downloads
- 安装完成后,在命令行输入git --version可以查看到git的版本。
在gethub或者code.chinad登录
生成SSH密钥
- 由于我们的本地git仓库和 CODE.CHINA仓库之间的传输是通过SSH加密的,所以我们需要配置SSH密钥。
1,使用ssh命令:打开cmd命令行,输入命令,注意:此处的XXXX应该为你gethub或者code.chinad邮箱账户。
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
按照提示完成三次回车,即可生成ssh key。
可以看到,我们生成的公钥文件id_rsa.pub路径:C:\User\Adminstrator/.ssh/id_rsa.pub
进入该目录用文本编辑器打开
即可看到SSH公钥,下文中将会用到这个SSH公钥。
配置SSH密钥
1,在CODE.CHINA网站点击设置
2,点击SSH密钥
拷贝刚刚的SSH密钥到框中,输入公钥标题,点击添加密钥
新建项目
点击右上角的 +号,新建项目:
如下,填写项目信息,最后点击创建即可:
新建项目成功
克隆项目到本地
点击克隆,然后点击SSH Clone项目的复制链接按钮,复制git链接
接着,在本地你要克隆仓库处,右键菜单,点击Git Bash Here。
输入git clone 刚刚的git链接,如下:
git clone git@codechina.csdn.net:linxinfa/mytest.git
成功后,本地目录即可看到克隆下来的文件。
关联本地工程到远程仓库
有时候,我们可能是先在本地有了工程文件,然后再在gitee上创建仓库的。
此时,可在本地库上使用命令 git remote add把它和 gitee的远程库关联,如下
git remote add origin git@gitee.com:linxinfa/mytest.git
报错
如果在使用命令 git remote add时报错:
git remote add origin git@gitee.com:linxinfa/mytest.git
fatal: remote origin already exists.
说明本地库已经关联了一个名叫 origin的远程库,此时,可以先用git remote -v查看远程库信息:
git remote -v
origin git@gitee.com:linxinfa/mytest.git (fetch)
origin git@gitee.com:linxinfa/mytest.git (push)
我们可以删除已有的远程库
git remote rm origin
再关联远程库
git remote add origin git@gitee.com:linxinfa/mytest.git
添加文件
- 在本地添加文件,如下,添加一个HelloWorld.txt文件。
- 执行git命令,提交文件
打开git,执行git的add、commit、push命令,即可将本地文件上传到远程仓库。
注:常用的git命令见文章最后面。
git add -A
git commit -m "Add File"
Add File为此次修改的解释语句,-m后必须加,可自己修改定义。
git push -u origin master
- 刷新CODE.CHINA页面,即可看到本地文件已经上传到CODE.CHINA上了
常用的git命令
git init #把当前目录变成git可以管理的仓库
git add readme.txt #添加一个文件,也可以添加文件夹
git add -A #添加全部文件
git rm test.txt #删除一个文件,也可以删除文件夹
git commit -a -m "some commit" #提交修改
git status #查看是否还有未提交
git log #查看最近日志
git reset --hard HEAD^ #版本回退一个版本
git reset --hard HEAD^^ #版本回退两个版本
git reset --hard HEAD~100 #版本回退多个版本
git remote add origin +地址 #远程仓库的提交(第一次链接)
git push -u origin master #仓库关联
git push #远程仓库的提交(第二次及之后)
错误
- ! [rejected] master -> master (fetch first)
可能性1
出现这个问题是因为github中的README.md文件不在本地代码目录中,可以通过如下命令进行代码合并
git pull --rebase origin master
再输入
git push -u origin master
可能性2
在推送代码时报错如上,网上搜到的方法说是项目的setting中master是受保护的项目,所以开发者无法推送,解决方法是修改protected的设置,或者新建一个分支,推送到自己的分支上
! [remote rejected] master -> master (pre-receive hook declined)
可能性3
git提交改动到缓存,要push的时候不会将本地所有的分支都push掉,所以出现这个问题。那么我们就需要新建分支提交改动然后合并分支。
- 先创建一个新的分支提交改动:
git branch newbranch
- 检查这条命令是否创建成功:
git branch
这时终端会输出:newbranch
和✳master
- 这样就创建成功了,前面的*代表的是当前你所在的工作分支,接下来就要切换工作分支:
git checkout newbranch
- 然后将你的改动提交到新的分支上:
git add .
git commit -m "提示消息"
- 此时可以$ git status 检查下提交情况。如果提交成功,我们接下来就要回主分支了:
git checkout master
- 我们将新分支提交的改动合并到主分支上:
git merge newbranch
合并分支可能产生冲突这是正常的,虽然我们这是新建的分支不会产生冲突,但还是在这里记录下。可以用
$ git diff 来查看产生冲突的文件,然后做对应的修改再提交一次就可以了。
- 我们的问题解决了,接下来就可以push代码了:
git push -u origin master
- 最后,新建分支的朋友别忘了删除分支:
git branch -D newbranch
如果想保留分支只是想删除已经合并的部分只要把大写的D改成小写的d就行了。
感谢
————————————————
此文有参考借鉴:CSDN博主「林新发」的原创文章,原文链接:https://blog.csdn.net/linxinfa/article/details/108730290
CSDN博主「way-up」的原创文章,原文链接:https://blog.csdn.net/weixin_43264399/article/details/87350219