Git代码托管
1 准备材料
-
在coding,github这些代码托管网站上申请一个账户。
-
Linux平台什么需要一个git,如ubuntu 需要 $ sudo apt-get install git,Windows平台需要下载一个Git环境。
我申请的是coding,github虽然人数比较多,但是网速 很慢,而且有的时候某个地方网络就不好使了,可能github用了某个机构的服务器,而这个服务刚好被中国墙了,为了保证通畅和速度,国内的coding还是满足要求的。
要我理解,coding,Github这些代码托管,都遵循Git的协议。这些网站只是提供服务器和接口。用Git的命令去访问这些coding,github这种代码托管的服务器。
我以coding为例来记录一下,我的配置。
2 建立仓库
2.1申请仓库
在coding的网站上需要建立一个仓库,这个仓库用来存储项目代码,建立项目好像就是简历仓库。建立完仓库的时候,会得到一个网址,这个网址后缀以.git结尾,需要记住这个仓库网址。
创建项目之后,进入到这个项目的代码列表里,得到一个这样以git结尾的网址 https://git.coding.net/coarlqq/V01_F2808.git
这个网址非常重要,后面在终端(windows是cmd)中要用。
我这几天研究的是HTTPS协议下的,SSH协议还没有研究,到时候用熟练之后看看SSH。
2.2 本地建立仓库
在网站上建立仓库之后,就要在本地建立对应的仓库(一个文件夹),这个仓库可以是你的工程的工作空间,也可以是你建立的新文件夹,最好还是代码的工作空间,Git最大的好处就是可以检测到只被改动的代码,每次更新之后push到服务器上是被改动的代码,也就是会对文件的版本进行检测。
我这里把我的DSP开发环境的CCSv7的工作空间作为本地仓库和服务器进行同步。路径/home/delvis/workspace/CCSv7/,里面有我开发的工程代码。
S1:打开终端,切换到建立本地仓库的路径,那么我就要输入:
cd /home/delvis/workspace/CCSv7
S2: 在该路径下简历一个说明文档,README.md文件,用来说明项目的的介绍之类的。
touch README.md
S3: 初始化仓库
git init
到此为止我们就建立了一个本地的仓库。
2.3 本地仓库和远程仓库建立连接
新建立的远程仓库没有任何的代码,现在就需要把本地库和远程仓库建立连接,完成本地仓库和远程仓库的上传和下载,以及更新等等。
S1: 使用git的add命令将待传的文件加入到上传列表。第一次的时候先不要传那么多,先传README.md单个文件。
git add README.md
S2:更新说明(每一次修改都有个commit说明这个东西,你需要对这个说明进行修改,改一点点也可以,如果不该就没办法上传)
git commit -m "first commit"
S3:建立远程连接,后面从https开始就是你在第一节申请的git那个网站。
git remote add origin https://git.coding.net/coarlqq/V01_F2808.git
S4:使用push命令上传刚才加入列表的文件
git push -u origin master
S5: 如果是私有项目的话,需要按照提示输入用户名和密码。如下图所示,为从头到位的几个命令。
推送了README.md文件之后,我们进入到coding的网站上,查看该项目的代码,就可以看到我们上传的md文件了。
2.4 批量上传整个文件夹
上一步通过remote命令和远程库建立了连接,数据都存储在本地.git文件夹里面,下一次在对该仓库操作的时候就不需要进行remote连接,只需要commit和push两个命令,但是如果以后你在远程库对项目进行了名字的修改,就需要按照上面的方法重新配置。
如何上传整个文件夹呢?
S1:添加整个文件包含文件夹内部文件所有的。(注意add 和 .之间有空格 add . 不是 add.)
git add .
S2:修改发布声明,命令一旦启用,就会自动调入VI编辑模式,
git commit -a
这个声明必须有改动,否则不能上传,就算你改一个字符都是可以的, 输入i进入编辑模式,随便打一个字符然后按ESC进入命令模式,输入英文状态下的冒号:,输入wq,之后保存且退出。这时候所有待上传的文件都被选中了,这个时候git会自动检测本地和远程仓库代码版本的不同。
S3:上传刚才被add标记的文件
git push -u origin master
同样会让你键入用户名和密码。
然后就自己就开始上传了。
回到网站上,就可以看到刚才上传的代码。
3 下载代码
使用clone命令下载已经上传的代码(更新到新的目录,如果是原目录就不要clone了)
git clone https://git.coding.net/coarlqq/V01_F2808.git
也可以指定路径:
git clone https://git.coding.net/coarlqq/V01_F2808.git /home/delvis/什么什么路径
如果是本地仓库使用git pull origin master
同步,master
是分支,会自动从服务器上更新,如果本地版本高于当前版本是不能pull成功的,只能重新clone到一个新的路径。