代码管理(一)git
代码管理工具有很多
主要的有两个
git 和 svn
svn 衍生出来的软件有 cornerstone smartSVN
git 的图形界面工具有 Sourcetree
前几年 svn 一般在国内开发比较常用,但是也有越来越多的人用上了 git
git 免费的仓库 是开放的,如果想私有仓库 需要 花钱的。具体的花多少钱请自行去官网看。
今天主要说说 git
==============================================
参考链接 http://www.cnblogs.com/oc-bowen/p/5263229.html
一、简介
在Mac上,比较好用的git图形界面客户端有
1 01. GIT简介(PPT)
2 ================================================================================
3
4 02. GIT命令行帮助
5 ================================================================================
6 $ svn help
7 查看svn所有命令的帮助
8 $ svn help 子命令
9
10 # 要退出帮助信息,按"q"
11 # 翻看下页,按"空格"
12 # 翻看上页,按"CTRL+B"
13 # 要搜索相关文字,按"/"然后输入"相关文字"
14
15 03. 创建代码库 & 配置个人信息
16 ================================================================================
17 1> 创建代码仓库
18 $ git init
19
20 2> 配置用户名和邮箱
21 $ git config user.name lnj
22 $ git config user.email lnj@gmail.com
23
24 * 以上两个命令会将用户信息保存在当前代码仓库中
25
26 # 只有配置了用户和邮箱之后,git才能识别出操作的人员信息,通过钩子(hooks)程序可以设置一些动作
27 # 例如单元测试发现问题后,自动给相关人员发送电子邮件
28 * 注意 暂时不建议投入一毛钱精力
29
30 3> 如果要一次性配置完成可以使用一下命令
31 $ git config --global user.name lnj
32 $ git config --global user.email lnj321@gmail.com
33
34 * 以上两个命令会将用户信息保存在用户目录下的 .gitconfig 文件中
35
36 4> 查看当前所有配置
37 $ git config -l
38
39 04. 实际开发
40 ================================================================================
41 1> 创建代码,开始开发
42 $ touch main.c
43 $ open main.c
44
45 2> 将代码添加到代码库
46 # 查看当前代码库状态
47 $ git status
48 # 将文件添加到代码库
49 $ git add main.c
50 # 将修改提交到代码库
51 $ git commit -m "添加了main.c"
52
53 提示:
54 * 在此一定要使用 -m 参数指定修改的备注信息
55 * 否则会进入 vim 编辑器,如果对vim不熟悉,会是很糟糕的事情
56
57 # 将当前文件夹下的所有新建或修改的文件一次性添加到代码库
58 $ git add .
59
60 3> 添加多个文件
61 $ touch Person.h Person.m
62 $ git add .
63 $ git commit -m "添加了Person类"
64 $ open Person.h
65 $ git add .
66 $ git commit -m "增加Person类属性"
67
68 * 注意 使用git时,每一次修改都需要添加再提交,这一点是与svn不一样的
69
70 git 的重要概念及工作原理
71 --------------------------------------------------------------------------------
72 工作区
73 暂存区(staged)
74 分支(HEAD)
75
76 05. 别名 & 日志
77 ================================================================================
78 $ git config alias.st status
79 $ git config alias.ci "commit -m"
80
81 个人建议:除非特殊原因,最好不要设置别名,否则换一台机器就不会用了
82
83 # 查看所有版本库日志
84 $ git log
85 # 查看指定文件的版本库日志
86 $ git log 文件名
87
88 # 配置带颜色的log别名
89 $ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
90
91 提示:在git中,版本号是一个由SHA1生成的哈希值
92
93 06. 版本号,让我们在任意版本之间穿梭
94 ================================================================================
95 # 回到当前版本,放弃所有没有提交的修改
96 $ git reset --hard HEAD
97 # 回到上一个版本
98 $ git reset --hard HEAD^
99 # 回到之前第3个修订版本
100 $ git reset --hard HEAD~(3)
101 # 回到指定版本号的版本
102 $ git reset e695b67
103
104 # 查看分支引用记录
105 $ git reflog
106
107 07. 单个文件的修改管理
108 ================================================================================
109 # 查看文件变化
110 $ git diff
111 # 撤销对文件做的修改
112 $ git checkout Person.h
113 # 从代码库(暂存区中删除文件)
1 01. 建立代码仓库(专门用于团队开发的代码仓库)
2 ================================================================================
3
4 # 切换目录
5 $ cd /Users/lnj/Desktop/git演练/公司/weibo
6 # 建立空白代码库(专门用于团队开发)
7 $ git init --bare
8
9 02. 项目经理准备项目(前奏)
10 ================================================================================
11
12 # 切换目录
13 $ cd /Users/lnj/Desktop/git演练/经理
14 # "克隆"代码库到本地
15 $ git clone /Users/lnj/Desktop/git演练/公司/weibo/
16
17 # 个人信息配置(因为要演示一台机器上的多人协作,日常开发可以忽略)
18 $ git config user.name manager
19 $ git config user.email manager@163.com
20
21 .gitignore
22 --------------------------------------------------------------------------------
23 .gitignore可以指定哪些文件不纳入版本库的管理
24
25 参考网址:https://github.com/github/gitignore
26
27 # 命令行中进入与.git同级的目录
28 $ cd /Users/lnj/Desktop/git演练/经理/weibo
29
30 将以下命令一次性粘贴到命令行中
31 --------------------------------------------------------------------------------
32 echo -e "# Xcode
33 #
34 build/
35 *.pbxuser
36 *.mode1v3
37 *.mode2v3
38 *.perspectivev3
39 xcuserdata
40 *.xccheckout
41 *.moved-aside
42 DerivedData
43 *.hmap
44 *.ipa
45 *.xcuserstate
46 # CocoaPods
47 #
48 # We recommend against adding the Pods directory to your .gitignore. However
49 # you should judge for yourself, the pros and cons are mentioned at:
50 # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
51 #
52 # Pods/" > .gitignore
53 --------------------------------------------------------------------------------
54 # 将.gitignore添加到代码库
55 $ git add .gitignore
56
57 03. 创建项目
58 ================================================================================
59 提交同时"push"到远程代码仓库
60
61 04. 新人加入
62 ================================================================================
63
64 ...
65
66 05. 分布式的代码库 - 仅供参考
67 ================================================================================
68 由于git是分布式的,任何一台计算机上都保留有完整的代码库的内容,因此可以把团队开发的代码库放在任何位置
69
70
71 多个远程代码库之间的同步演练"提示,此演练仅供了解,具体的使用,需要一定的团队规模之后,才能够体会"
72
73
74 06. 分支管理 - Tag
75 ================================================================================
76 # 查看当前标签
77 $ git tag
78 # 在本地代码库给项目打上一个标签
79 $ git tag -a v1.0 -m 'Version 1.0'
80 # 将标签添推送到远程代码库中
81 $ git push origin v1.0
82
83 # 使用tag,就能够将项目快速切换到某一个中间状态,例如产品开发线上的某一个稳定版本
84 # 签出v1.0标签
85 $ git checkout v1.0
86 # 从签出状态创建v1.0bugfix分支
87 $ git checkout -b bugfix1.0
88
89 # 查看远程分支
90 $ git branch -r
91 # 删除远程分支
92 $ git branch -r -d origin/bugfix1.0
1 01. 分布式的代码库 - 仅供参考
2 ================================================================================
3 由于git是分布式的,任何一台计算机上都保留有完整的代码库的内容,因此可以把团队开发的代码库放在任何位置
4
5
6 多个远程代码库之间的同步演练"提示,此演练仅供了解,具体的使用,需要一定的团队规模之后,才能够体会"
7
8
9 02. 分支管理 - Tag
10 ================================================================================
11 # 查看当前标签
12 $ git tag
13 # 在本地代码库给项目打上一个标签
14 $ git tag -a v1.0 -m 'Version 1.0'
15 # 将标签添推送到远程代码库中
16 $ git push origin v1.0
17
18 # 使用tag,就能够将项目快速切换到某一个中间状态,例如产品开发线上的某一个稳定版本
19 # 签出v1.0标签
20 $ git checkout v1.0
21 # 从签出状态创建v1.0bugfix分支
22 $ git checkout -b bugfix1.0
23
24 # 查看远程分支
25 $ git branch -r
26 # 删除远程分支
27 $ git branch -r -d origin/bugfix1.0
1 如何使用/学习第三方框架?
2
3 优秀的第三方框架都在 github.com
4
5 1> 搜索
6 2> git clone 获得完整版本
7 $ git clone https://github.com/AFNetworking/AFNetworking.git
8 3> 获取最新版本 git pull
9 * 进入clone的本地文件夹
10 $ git pull
11
12 4> 看github上的文档,优秀的第三方框架都有好的文档
13 5> 编写测试程序,看运行结果
14 6> 针对感兴趣的部分,看源代码
15
16 7> 有问题去http://stackoverflow.com
代码管理(一)git的更多相关文章
- 通过代码管理工具 git 完成一次完整的代码管理过程
1.从公共远程fork一份自己的本地远程之后,从本地远程 clone 到本地 2.将本地代码跟公共远程代码做关联配置 git remote add upstream https://github.co ...
- 代码管理工具 --- git的学习笔记二《git的工作原理》
通过几个问题来学习代码管理工具之git 一.git是什么?为什么要用它?使用它的好处?它与svn的区别,在Mac上,比较好用的git图形界面客户端有 git 是分布式的代码管理工具,使用它是因为,它便 ...
- 代码管理必备-----git使用上传码云
作为一个程序员,你要学会代码的管理,这是一个最基本的修养,就像是一个剑客的剑谱,代码管理,目前流行的是svn和git,但是很不好的是git如果没有插件的话,很多人都不会用git bash 来实现自己的 ...
- 代码管理工具Git的安装及使用
一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...
- 代码管理工具 Git
之前一直使用微软的代码管理工具TFS(Team Foundation Server)..NET CORE 2.0的发布后,考虑到.NET CORE项目可以跨平台,准备把项目迁移到.NET CORE 环 ...
- 使用代码管理工具(git)管理代码的常用指令合集
create a new repository on the command line echo "# test" >> README.md git init git ...
- 代码管理工具-Git基础介绍及常用技巧
目录 Git起源 基本概念 Branch.HEAD和Commit tree Git分支 git merge 和 git rebase 的区别和抉择 与远程仓库的交互 关于一些实际开发场景的问题和解决方 ...
- SourceTree代码管理学习git命令操作
Git管理工具SourceTree提交代码时报文件名过长,用命令解决这个错误: 使用git status查看状态信息 git status 使用git add将修改后的文件(.代表全部文件)添加到暂存 ...
- 项目代码管理工具Git的总结
在项目的开发中,代码的同步管理很重要,团队的几个人可以通过免费的github管理自己的开源项目代码,高效方便.下面说说,开发中经常用到的git指令操作,基于github平台. 0.配置提交者的账户和邮 ...
- 代码管理工具 --- git的学习笔记一《git的个人开发》
重点摘要: 创建了一个文件后首先先通过git add . 添加到暂缓区,然后通过git commit -m "提交的名字" 提交到本地仓库,最后才可能push到远程仓库. 1. 个 ...
随机推荐
- 给ajax表单提交数据前面加上实体名称
有时候我们后台做了一个引用类型例如: 下面的实体以C#为例 public class Order{ public string orderId{get;set;} public OrderItem o ...
- iOS中文API之UITouch详解
UITouch 对象用于位置. 大小. 运动和一根手指在屏幕上为某一特定事件的力度.触摸的力度是从开始在 iOS 9 支持 3D 的触摸的设备上可用.你可以通过UIEvent对象传递给响应者对象访问. ...
- WIN10系统如何取消右下角的通知菜单,通知图标
鼠标左键单击通知按钮,然后点击所有设置 在通知和操作页面,取消勾选所有的通知 建议选择在任务栏显示哪些图标,然后勾选显示所有图标
- 从头认识java-15.7 Map(7)-TreeMap与LinkedHashMap
这一章节我们来讨论一下Map两个比較经常使用的实现:TreeMap与LinkedHashMap. 1.TreeMap 特性:依照key来排序 package com.ray.ch14; import ...
- Angularjs 中的 controller
接触过程序开发的小伙伴们对 MVC 的开发方式想必一点也不陌生,是的, angularjs 所採用的方式便是 MVVM 的开发方式,这里的 controller 即控制器 了解 controller ...
- 007-Go package 说明
1:在项目src下面存在两个目录,每个目录里面各有一个go文件 2:add.go package test02 func Add(a int, b int) int{ return a + b } 注 ...
- angularJS 事件广播与接收[转]
路由的事件 事件这个词在前端出现的频率真是高,根本拦不住,哪都是.$route服务在路由过程中的每个阶段都会触发不同的事件,可以为这些不同的路由事件设置监听器并做出响应. 一共有4个事件用来监听路由的 ...
- vuejs组件交互 - 03 - vuex状态管理实现组件交互
组件交互模式的使用场景 简单应用直接使用props down,event up的模式就可以了 小型应用使用事件中心模式即可 中大型应用使用vuex的状态管理模式 vuex 包含要管理的应用数据和更新数 ...
- IOS-异常处理
http://blog.csdn.net/ndscoahz/article/details/50866229 http://www.cnblogs.com/snail-007/p/4564422.ht ...
- VREP中的二维激光雷达
目前,轮式机器人的研究中已经大量使用激光雷达辅助机器人的避障导航,考虑到使用成本,一般二维激光雷达使用较多,如下图.由于只能扫描一个平面,如果想用二维激光雷达获取环境三维点云,则需要通过移动机器人或加 ...