0.几个基本概念

本地仓库:本机上某个存放代码的仓库。

远程仓库:码云服务器上的代码仓库。

重要提醒:当我们在本地操作(新增、删除、修改)文件、目录时,并将其提交(commit),就是提交到了本地仓库。注意:所有的改动只是放到了本地仓库,并没有上传到服务器的远程仓库。

怎么将本地仓库与远程仓库关联起来呢?

需先将本地仓库与远程仓库关联起来,就可将本地仓库中的对代码的改动上传到(push)远程仓库,也可从远程仓库将对代码的代码改动下载(pull)下来。

实验室电脑与码云服务器的关系:

  1. 为了将实验室的对代码的改动push到码云服务器上,需将实验室电脑的某个目录建立成本地仓库,然后关联码云服务器上的远程仓库。就可将代码文件加入(add然后commit)本地仓库,然后再将本地仓库的代码改动push到码云上面远程仓库
  2. 回到宿舍,我们可将码云上的远程仓库克隆(clone)到你的电脑上的本地仓库,即在码云的远程仓库与你电脑上的本地仓库建立了关联,然后就可愉快地同步(上传、下载)我们的文件啦。

1.在码云上申请账号并建立项目

git.oschina.net

新建项目

输入项目名,选择正确的项目语言

可以看到新建的项目中有一个默认的README.md文件。

选择HTTPS,点击复制获得远程项目仓库地址,如https://git.oschina.net/zhrb/JavaLearn.git

这时候就成功的建立了一个远程仓库。

2.在本机安装Git

到Git官网https://www.git-scm.com/ 下载Git客户端

安装过程中几个选项勾选

  • Use Git from the Windows Command Prompt
  • Checkout as-is, commit as-is
  • Use OpenSSH

3.在本机克隆项目远程仓库

3.1 配置git

git config --global user.name "你的名字"

git config --global user.email "你的Email"

名字会出现在你的代码提交记录中。保持Email与您的码云上注册的Email一致。

3.2 Clone项目

所谓的Clone,就是将远程仓库中的内容下载到本地仓库

建立目录,如c:\temp\git,进入项目目录,然后执行git clone https://git.oschina.net/zhrb/JavaLearn.git

可以看到JavaLearn目录被下载下来。注意:这时候c:\temp\git实际上就是本地仓库



这时候就成功了建立了本地仓库并与码云的远程仓库关联起来。然后就可在本地仓库与远程仓库之间进行同步。

3.3 编写代码并提交到本地仓库

进入JavaLearn目录,然后创建chpt01目录,md chpt01

在chpt01目录中新建HelloWorld.java

使用下面两条命令将所有改动(新建的目录、新建的HelloWorld.java)添加到本地仓库中。

git add -A,跟踪文件、目录的所有变化(创建、删除、修改),将所有相关文件放在暂存区。

git commit -m "这是一段注释",将暂存区中的所有提交到仓库中,并写上一段注释。

说明:使用git add 你的文件名,可以更精细的选择要跟踪的文件。

其他:

git log,查看提交记录。其中commit 504d11....f365e是提交的id。

下面的add: HelloWorld.java代表这次提交所进行的操作。



git log使用说明:空格键、PageUp、PageDown翻页,q退出。

git log --pretty=oneline:一行显示,只显示哈希值和提交说明。

如何给文件改名或者移动文件

新版的Git能监控到文件改名和移动。改名或移动后,直接add后再进行commit即可。

git status显示中文乱码:

git config core.quotepath false

3.4 将本地仓库的内容提交到远程仓库

经过前面几步,你新建的目录与文件仅在本地仓库。使用下面指令,可将本地仓库内容推送到远程仓库。

git push origin master

默认情况下,origin指向的就是你本地的仓库托管在远程仓库的版本。

master,本地仓库的master分支,也就是主分支。

第一次push的时候可能需要输入用户名密码,请输入你在码云上注册的邮箱和密码。

这时你使用浏览器打开码云相关项目页面,会发现你新添加的目录和文件已经上传到服务器端。

3.5 将远程仓库最新的内容抓取到本地

假设你在宿舍的d:\temp\dorm目录下曾经使用git clone将该项目克隆下来。

后来在实验室,你还往仓库中添加了Test.java。并使用git push将Test.java上传到服务器上,

你在宿舍怎么下载这个Test.java呢?

可以使用git pull或者git pull origin master。如图,可以看到Test.java已经被下载到本地。

pull时如果从服务器上下载下来Test.java文件和你本机上的Test.java有冲突,可能导致合并不成功。

可解决冲突后,然后重新合并。详见参考资料

Git 使用常见问题

如何处理冲突

其他

Eclipse EGit图形界面下使用Git

使用Eclipse Egit与码云管理你的代码

Git参考

Git链接

Git与码云(Git@OSC)入门-如何在实验室和宿舍同步你的代码(1)的更多相关文章

  1. Git与码云(Git@OSC)入门-如何在实验室和宿舍同步你的代码(2)

    4. 处理冲突 4.1 向远程仓库push时无法提交成功,提示在push前应该先pull 如图所示: 有可能是因为远程仓库的版本与本地仓库的版本不一致,所以应先git pull将远程仓库的内容合并到本 ...

  2. 如何使用Git和码云Git@OSC

    1.Git简介 关于Git是什么,阅读博客Git简介 2.Git 基础 Git命令很多,常用命令如下图 Workspace:工作区 Index/Stage :暂存区 Local Repository: ...

  3. GitHub Desktop+码云(GIT.oschina)使用方法

    一.如何从码云GIT导入到GitHubDeskTop桌面工具. 1.先用命令行切换到本地的目录. 2.使用git clone 码云GIT地址 命令将项目克隆到本地. 3.在GitHub Desktop ...

  4. git和码云的使用

    什么是码云 快速入门 Git入门 码云是开源中国社区2013年推出的基于 Git 的完全免费的代码托管服务,这个服务是基于 Gitlab 开源软件所开发的,我们在 Gitlab 的基础上做了大量的改进 ...

  5. 我的一个git(码云)之旅

    合作开发项目,你就会用到git,现在码云比较简单,因为是中文化界面,学习起来难度比较低,又支持5人以下项目免费,所以学习码云更好入手一点. 下面的东西适合一些个基础比较低的用户学习,因为我就是啊... ...

  6. 【项目管理】git和码云的使用

    缘起 说了那么多关于git和码云相关的事,一直都没给大伙讲解这个码云究竟是个啥玩意儿. 今天就给大伙说说如何通过git和码云搭建属于自己的代码库. 码云 码云(Git@OSC)是开源中国社区团队推出的 ...

  7. 【项目管理】git和码云的使用【转】

    转自:https://www.cnblogs.com/riverdubu/p/6491944.html 缘起 说了那么多关于git和码云相关的事,一直都没给大伙讲解这个码云究竟是个啥玩意儿. 今天就给 ...

  8. Git从码云Clone代码到本地

    Git从码云或者Github 克隆代码到本地 1.下载安装Git,傻瓜式下一步下一步即可... 2.配置Git: 2.1.选择你要clone到本地的路径:右键--->$ Git Bash Her ...

  9. Git(使用码云)

    使用GitHub时,国内的用户经常遇到的问题是访问速度太慢,有时候还会出现无法连接的情况(原因你懂的). 如果我们希望体验Git飞一般的速度,可以使用国内的Git托管服务——码云(gitee.com) ...

随机推荐

  1. python——序列 & 集合 & 映射

    列表 & 元组 & 字典 & 集合 序列 序列: 每个元素可以是任何类型(也可以是序列),每个元素被分配一个序号(从0开始)(序号,也叫索引,表示元素的位置) Python中的 ...

  2. Oracle 高水位线和全表扫描

    --Oracle 高水位线和全表扫描--------------------------2013/11/22 高水位线好比水库中储水的水位线,用于描述数据库中段的扩展方式.高水位线对全表扫描方式有着至 ...

  3. python 在大文件里面删除某一行,比较有效率的方法

    用 python 处理一个文本时,想要删除其中中某一行,常规的思路是先把文件读入内存,在内存中修改后再写入源文件. 但如果要处理一个很大的文本,比如GB级别的文本时,这种方法不仅需要占用很大内存,而且 ...

  4. QT server服务端如何判断客户端断开连接

    在QT编程中有时会用到server服务端与客户端进行TCP网络通信,服务端部分代码如下: 1.创建server用于监听客户端套接字 this->server = new QTcpServer(t ...

  5. CSS中浮动和定位对元素宽度/外边距/其他元素所占空间的影响

    ---恢复内容开始--- 一.width:auto和width:100%的区别   1.width:100%的作用是占满它的参考元素的宽度.(一般情况下参考元素 == 父级元素,这里写成参考元素而不是 ...

  6. python+selenium自动化软件测试(第5章):Selenium Gird

    5.1 分布式(Grid) Selenium grid是用来分布式执行测试用例脚本的工具,比如测试人员经常要测试多浏览器的兼容性,那就可以用到grid了.下面就来介绍如何在多个浏览器上运行同一份脚本. ...

  7. UEditor编辑器第一次赋值失败的解决方法

    网上查了很多方式都不是很好用,最后想到了这样的处理方式 首先在js中定义一个全局变量 var ue = null; 然后在初始化显示编辑器的时候js这样写 if (ue == null) { ue = ...

  8. jQuery遍历-后代

    后代是子.孙.曾孙等等. 通过 jQuery,您能够向下遍历 DOM 树,以查找元素的后代. 向下遍历 DOM 树 下面是两个用于向下遍历 DOM 树的 jQuery 方法: children() f ...

  9. Python学习笔记5

    1.关于global声明变量的错误例子 I ran across this warning: #!/usr/bin/env python2.3 VAR = 'xxx' if __name__ == ' ...

  10. [2017-05-31]Abp介绍和经验分享-目录

    很久没动博客了,人比较懒. 最近想写点啥,主要就介绍下ABP框架和我这两年的使用经验. 文档翻译之类的工作就算了,需要的请参考: 官方文档 PS:官方文档末尾有中文文档的链接,这里就不贴了 先列个提纲 ...