3055|4

854

帖子

0

TA的资源

五彩晶圆(中级)

楼主
 

1分钟学会用git管理代码 转自RunningOn [复制链接]

1分钟学会用git管理代码

转自RunningOn

    本文是一个入门级的使用教程,简单介绍最基础的命令,专为想用git而不知从何下手的苦手准备。git是新流行起来的代码管理工具,最著名的应用是 linux内核代码管理。Git比SVN好的地方在于两点:轻量级、分布式。其中分布式的意思是Git不需要一个中心服务器,或者说任何一台使用git的 电脑都可以当服务器,建立代码库服务器异常简单。

    本文不重点介绍git的安装,简单说一下:在Ubuntu/Debian下直接apt-get:
    sudo apt-get install git-core
    就OK了。目前为止git没有为Windows专门写安装包,如果要在Windows下使用git,需要cygwin,也不麻烦,但本文就不多做说明了。

    以下分两种应用场景来说明git的使用。1. 个人使用,不用建专门的代码服务器。2. 多人维护代码,需要代码建服务器。

    1. 个人使用,不用建专门的代码服务器。
    很简单。假设你的代码放在/home/runningon/project目录下(非空),那么运行:
    git init
    git add .
    git commit -m "init version"

    然后git代码库就建立好了,目录下会多出个.git目录来。git init就是初始化,git add是标记上要添加的文件,"."表示当前目录,此命令会递归标记所有子目录及文件。git commit就是把标记上的文件和修改的文件commit到git库里,-m参数是添加对此次commit的注释,git要求每次commit都必须有注 释,如果没有-m参数,将会自动打开一个编辑器(通常是vi或nano)要求输入注释。
    以后,如果修改了文件,则运行
    git commit -m ""
    就可以将修改反映到git库,将替换为你想要的注释。
    如果添加了代码文件new_file,则在commit之前运行
    git add new_file
    如果想把代码克隆一份出来,进入你想克隆到的目录运行:
    git clone /home/runningon/project new_project
    注意git clone后有两个参数,第一个参数是源代码目录,也就是含有.git文件夹的目录。第二个参数是要克隆到的目录,如果省略,则会在当前目录下建立一个与源代码目录同名的目录,在本例中就是./project
    克隆出的目录包含克隆前目录的所有代码修改信息,是完全独立的,即之后在new_project下的所有修改与commit都不会影响原project。

    2. 多人维护代码,需要代码建服务器。
    假设代码服务器的IP是10.0.0.2。git默认用ssh作为网络通讯协议,所以在服务器10.0.0.2上安装之:
    sudo apt-get install ssh
    然后添加一个用户,比如code,home目录是/home/code。以code用户登录10.0.0.2,建立一个/home/code/project目录来存放代码。在/home/code/project目录下运行:
    git --bare init
    一条命令就把服务器就建好了,小菜吧。--bare命令是告诉git当前目录不含代码,以后commit时只用保存修改就可以了。
    在本机下载代码与情况1一样:
    git clone /home/code/project new_project
    如果要在另外的电脑下载代码,运行:
    git clone code@10.0.0.2:project
new_project
    此命令会以ssh方式连接10.0.0.2,如果第一次连接,会询问是否信任该服务器,输入yes后。然后输入code用户的密码就可以了。//注,原文作者说
code@10.0.0.2:project这里需要home目录,其实不需要,这里亲测user@192.168.0.136:/media/Disk1_150G/tommy-test,即使用“用户名@绝对路径”的方式也是可以的。
    注意git clone后第一个参数的格式,为<用户名>@<服务器IP>:<相对路径>,其中<相对路径>是指相 对于<用户名>所在home目录的相对路径,比如此例中,code的home目录是/home/code,那么此例的路径实际为/home /code/project。<相对路径>不能留空或省略,如果代码确实是在home目录下,则<相对路径>是".",不含双引 号。要提醒一下的是,如果代码库是空的,会给出警告,不必理会。

    如果在new_project里修改了代码,且添加了新代码new_file,想把这修改commit到服务器上,先运行:
    git add new_file //这里也可以使用git add . 来完成,应为服务器上只会保存修改,所以全部上传也可以。
    git commit -m ""
    将替换为你的注释。这样代码就commit到当前机器的new_project了。如果想commit到服务器上,则在new_project目录下运行:
    git push code@10.0.0.2:project
master
    然后输入code用户的密码。master不是目录名,具体含义本文不作解释。
    如果本机就是服务器,那么IP地址可以写为localhost或127.0.0.1。
    如果觉得每次输入
code@10.0.0.2:project很麻烦,可以为这个URL取个别名my_server:
   git remote add my_server
code@10.0.0.2:project
    这样前一条git push命令可以写作:
    git push my_server master

    好了,入门级介绍就结束了。进一步的学习可以看:
    官方教程(英文):
http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html
    官方教程的中译版本: http://www.bitsun.com/documents/gittutorcn.htm


最新回复

马克一下~  详情 回复 发表于 2015-7-15 19:36
点赞 关注
个人签名如果对linux,Android,wince 等嵌入式底层有兴趣的,请加这个QQ群吧,群号:27100460

回复
举报

854

帖子

0

TA的资源

五彩晶圆(中级)

沙发
 

因为经常把工作带回家去做,在家用电脑上写的一些代码常常来不及与公司电脑上的代码进行同步,导致代码管理混乱。

现在使用git来进行源代码管理,就轻松多了,而且还可以很方便地和别人一起协作开发。


步骤如下:

1. 配置server:  mkdir repos.git
  cd repos.git
  git --bare init           #建立一个空的 git仓库,--bare 参数说明当前init 的不是工作目录

2. 将PC-1上现有的workspace进行git管理并上传到服务器端:  cd workspace
  git init
  git add *
  git commit -m 'initial commit'
  git remote add origin ssh://huzhenwei@192.168.1.2/home/huzhenwei/repos.git            #192.168.1.2为服务器的内网IP
  git push origin master        #将本地的代码上传到服务器端

3. 从服务器端检出版本库到PC-2,在PC-2上新建文件并上传到服务器端:  git clone ssh://huzhenwei@192.168.1.2/home/huzhenwei/repos.git workspace
  cd workspace
  touch newfile         #创建一个新文件来做测试
  git add newfile
  git commit -m 'add newfile'
  git push origin master        #将本地的代码上传到服务器端

4. 在PC-1上获取PC-2更新的内容:  git pull origin master        #将服务器端的代码下载到本地
 
个人签名如果对linux,Android,wince 等嵌入式底层有兴趣的,请加这个QQ群吧,群号:27100460
 

回复

854

帖子

0

TA的资源

五彩晶圆(中级)

板凳
 
还是很不错的,以后用到再说了。
 
个人签名如果对linux,Android,wince 等嵌入式底层有兴趣的,请加这个QQ群吧,群号:27100460
 
 

回复

105

帖子

0

TA的资源

一粒金砂(中级)

4
 
好文章.ding~~~~
 
 
 

回复

109

帖子

25

TA的资源

一粒金砂(高级)

5
 
马克一下~
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表