关于这样的东西,网上很多教程,这里就结合自己看的还有自己的例子来说明一下吧:
1.你得下载一个git软件并成功安装
2.生成ssh:
关于这个,我觉得似乎不是一定的,因为通过https也可以连接到coding的远程仓库,但是用ssh可以让你在以后的push都不用输入密码。
(还有种输入密码的方式):
然后coding官网讲这个ssh的讲得还是蛮详细的,配的时候可以在这里看:https://coding.net/help/doc/account/ssh-key.html(这篇博客讲得不错)
这里就大概讲一下过程:
生成公钥:打开命令行终端输入 ssh-keygen -t rsa -C "your_email@example.com"( 你的邮箱),连续点击 Enter 键即可。
复制公钥,用文本编辑器打开『id_rsa.pub』文件,复制全部内容。这个id_rsa.pub你在git的命令行那生成后就会告诉你路径,windows的话一般在用户的.ssh文件夹里面,还有一个id_rsa是密钥
在coding中添加公钥:这里就不讲了,官网有很详细的介绍
3.创建本地仓库:
这里先要来介绍一下git的一些知识 (https://blog.csdn.net/qq_22337877/article/details/73249912)
简单的来说,电脑中能看到目录的地方,就是一个工作区,然后工作区中有个隐藏目录.git,这个其实不算工作区,而是git的版本库。
git的版本库里面有很多东西,其中较为重要的是stage或者叫index,就是缓存区。还有git为我们自动创建的第一个分支master,以及指向master的第一个指针叫做head
我们现在就是要建立我们的本地仓库,一般可以是你的工作目录。
在你的项目文件夹下面,鼠标右键然后git bash here,然后就可以使用git的命令行来进行操作了
要建立本地仓库,要用到的命令是 git init 然后这个时候的效果就是,你的项目文件夹目录下有了个.git后缀的文件。也就是说在你的工作区中现在有了个git的版本库了。
4.在coding上建立远程仓库并与之建立联系:
首先是在coding上建立你的仓库,这里建立一个空的仓库就好了。
如果你之前有在coding或者其他代码管理平台clone过代码,那么这里就已经与远程仓库建立起了联系。
然后这里,如果没有clone,那么这里就要用命令:
git remote add origin <server>
然后就关联上了远程仓库了。 添加后的远程仓库,我们叫origin
5.commit代码到本地分支head所指的master去:
因为我们的push操作(更新推送到远程仓库)是把本地仓库的分支push上去,所以我们先要把更新内容commit到本地分支。
先用命令add fileName 或者 add . 注意第二个命令有个“.”,是把本地所有新增的文件还有变化的文件都提交到缓存区stage,但好像不包括删除的文件。
这里第一次用这个命令的时候遇到了点问题,百度知道,windows中的换行符为 CRLF, 而在linux下的换行符为LF
这个问题是因为Git的换行符检查功能的,core.safe crlf ,这是可以让git在你提交文件的时候检查文件是否混用了不同风格的换行符,这个功能提供了如下选项:
false
- 不做任何检查warn
- 在提交时检查并警告true
- 在提交时检查,如果发现混用则拒绝提交
这个是设置换行符检查功能的,建议用true
git有三种模式去对付换行符结尾:
$ git config core.autocrlf
# that command will print "true" or "false" or "input"
#提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true If core.autocrlf is set to true, that means that any time you add a file to the git repo that git thinks is a text file, it will turn all CRLF line endings to just LF before it stores it in the commit. Whenever you git checkout something, all text files automatically will have their LF line endings converted to CRLF endings.
#提交时转换为LF,检出时不转换
git config --global core.autocrlf input
#提交检出均不转换
git config --global core.autocrlf false If core.autocrlf is set to false, no line-ending conversion is ever performed, so text files are checked in as-is. This usually works ok, as long as all your developers are either on Linux or all on Windows.
所以这里我们就暂时把这个autocrlf改成false,问题解决hhh
add之后可以通过 git status来查看 缓存的信息,这里查看的其实就是有没可以commit到本地分支的内容
然后下一步就是用命令 git commit -m "代码提交信息"
这一步是实际提交更改到本地仓库的分支中,也就是head中。
然后就出现了这个提示,tell me who you are 这是因为你在创建git版本库的时候信息不完整引起的,这里你就按照它的要求设好global的username和email就好。(其实这一步应该在git init创建git版本库就要干了)
然后就能正常 地commit了
6.push代码到远程仓库:
这一步就是把我们的本地分支masterpush到远程仓库上。 用到的命令是:git push origin master $ git push <远程主机名> <本地分支名>:<远程分支名>
这里有个问题,就是刚刚在coding新建repository的时候选了生成README.md,这就意味着远程仓库是非空的,然后就会出现一些问题,这里我们慢慢走一下过程
先是直接push:
哦这里提一下,第一次用ssh地址进行clone或者push操作的时候,会有这个ssh确认的警告,这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自Git的服务器,输入yes回车即可。
Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:
Warning: Permanently added 'github.com' (RSA) to the list of known hosts.
这个警告只会出现一次,后面的操作就不会有任何警告了。
然后就看到它报错什么Update were rejected 因为远程仓库有你本地没有的东西,嗯就是我上面说的README.md应该,然后下面也提示了如果是第一次想一体化仓库,那么就要先pull,
pull: 这里有个注意的是,你pull一回车,就进入了个vim的编辑状态,然后这个时候有两个命令可以做,
然后再执行push命令就可以了
最后总结一下几个 比较常用的命令:
git init //版本库初始化,新建版本库 git status //查看可以commit到本地分支master也就是head的更新 git add . //添加所有更新的内容到缓存区stage rm-rf .git//直接删除这个版本库 git remote add origin <server> //与远程服务器的仓库建立连接 git commit -m "代码提交信息" //提交stage中的更改到本地分支 git push origin master //将本地的master分支提交到远程仓库,origin是远程连接仓库的名字 git pull origin master //将origin库的东西下拉到本地的master分支上
补充几个add命令:
1. git add -A 保存所有的修改 2. git add . 保存新的添加和修改,但是不包括删除 3. git add -u 保存修改和删除,但是不包括新建文件。
还有总结一下几个参考的博客:
https://blog.csdn.net/qq_22337877/article/details/73249912 ——讲git工作去缓存区的知识
http://www.runoob.com/manual/git-guide/ ——讲git的一些简单命令还有简单使用介绍,界面挺好看hhh
https://coding.net/help/doc/account/ssh-key.html——讲关于ssh公钥的配置问题