作为程序员大家对版本控制都已经有所了解了,但是作为版本控制的当下比较流行的非git莫属了,下面在我学习的过程中写下这篇文章以帮助后边的同学进行学习,有什么不对的地方欢迎指正!
1、什么是git?
git是一款开源的分布式版本控制工具(什么是分布式自己可以去百度一下),它不必非要在服务器上创建,可以再任何一个文件夹、U盘等上边进行创建代码仓库
在世界上所有的分布式版本控制工具中,git是最快、最简单、最流行的
2、git的起源
作者是Linux之父:Linus Benedict Torvalds
当初开发git仅仅是为了辅助Linux内核的开发(管理源代码)
3、开始创建本地(注意是本地)代码仓库
(1)cd到要创建代码仓库的文件夹code
cd Documents/code
(2)初始化仓库
git init
执行完这段命令就会在code文件夹下出现.git文件夹,代表已经初始化成功,可以用 ls-a 查看。
(3)配置用户名和邮箱
git config user.name yueshuai
git config user.email yueshuai@idcool.com.cn
*以上两行命令会将这些信息保存到当前的代码仓库中,可以在.git文件夹中的config文件中看到,如图:
(这种配置方式是一次性的配置, 会配置到被管理文件的.git文件夹下)
如果想要配置全局的用户信息执行下边两行指令
git config --global user.name yueshuai
git config --global user.email yueshuai@idcool.com.cn
*执行完这两行命令之后你就会在当前电脑的用户信息的文件下看到.gitconfig文件夹可以通过当下指令看到:
cd ~ && ls -a
如下图:
(4)配置完了这些信息可以查看一下
git config -l
# 只有配置了用户和邮箱之后,git才能识别出操作的人员信息,通过钩子(hooks文件)程序可以设置一些动作
# 例如单元测试发现问题后,自动给相关人员发送电子邮件
#另外建议自己电脑就配置全局的git,避免每次创建代码仓库都要配置这些相同的信息
至此本地仓库已经创建完成
4、进入实际开发阶段,还是进入到code文件夹下(还是在本地仓库的状态下)
1)创建工程main.c文件并编写几行代码
touch main.c
opnen main.c
编写main.c
2)查看当前代码库状态
$ git status
#此时main.c的文件名字呈现红色状态,代表该文件还在工作区,还没被添加到暂存区
3)将修改的文件添加到暂存区
$ git add main.c
#执行完这行命令可以再执行$ git status查看main.c的文件呈现什么颜色,不出意外为绿色,不再贴图了,说明已经被添加到了暂存区了
补充工作原理: 1、我们编写代码没有add之前都是在工作区,就是当前的文件夹
2、add之后进入到暂存区,只有进到暂存区才能被提交到分支
4)最后进行提交到分支:
$ git commit -m"添加了main.c"
之后再查看状态,可以看出没有需要提交的文件了
5)补充命令:
1.给git命令起别名:
$ git config alias.st status(给status起别名:st)
个人建议:除非特殊原因,最好不要设置别名,否则换一台机器就不会用了
2. 查看所有提交的版本日志
$ git log
3. 查看指定文件的版本日志
$ git log 文件名
4. 配置带颜色的log别名
$ 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"
5. 回到当前版本,放弃所有没有提交的修改
$ git reset --hard HEAD
6. 回到上一个版本
$ git reset --hard HEAD^
7. 回到之前第3个修订版本
$ git reset --hard HEAD~(3)
8. 回到指定版本号的版本
$ git reset e695b67
9.查看分支引用记录
$ git reflog
10. 查看文件变化
$ git diff
#使用该命令的时候输出的结果中,如果显示绿色代表新增,如果显示红色代表删除
11.撤销对文件做的修改
$ git checkout Person.h
5、建立远程仓库,该例子在文件夹做演示
SVN需要一个单独的服务器
Git不需要: 文件中、U盘中、云上、github、OSChina...
1)、新建文件夹:<远程仓库>,在改文件夹下执行命令:
git init —bare
注意: 这个仓库仅仅是用于管理代码, 不参与开发,开发的人员需要从该路径下clone一份项目工程到自己的目录下进行开发
2)、项目经理初始化项目
1.先克隆一份空的仓库到本地(新建文件夹<manager>cd到<manager>文件夹下)
git clone /Users/mac/Documents/远程仓库
2.忽略不需要加入版本控制器的文件以及文件夹 .gitignore
.gittignore文件只需要到github上搜索就行了,然后复制下来执行:
echo -e"你从github上复制的东西">.gitignore
注意: 配置忽略文件只需要到github上搜索.gitignore拷贝别人写好的代码即可
配置.gitignore一定要在和.git隐藏文件夹同一级的目录下,即你clone下来得文件夹的里面,这里是<远程仓库>下
3.生成好.gitignore文件之后, 还需要将.gitignore文件添加到版本控制
git add .gitignore
git commit .gitignore -m””
4.在clone下来得<远程仓库>的文件夹下创建项目,接下里可以在xcode中的git进行管理了,但是也可以用上边学习的指令进行操作,在初始化完成项目之后,经过add、commit之后在进行最后一步操作:git push,就会将本地的代码传送到远程服务器上,其他员工就可以clone代码进行开发了
3)、冲突处理(未完待续ing)
最后如何自己学习更多的git指令呢,其实可以跟svn一样的,用 [git-(子指令)-help] 这样就会打开该指令的帮助指南
该指南是一个不可编写的vim,按空格键——翻下页 control +B 翻上页 /+内容 可以进行搜索内容