Git简介
- Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。
- Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源代码的版本控制软件。
- Git与常用的版本控制工具CVS、Subversion等不同,它采用了分布式版本库的方式,不用服务器端软件支持。
Git基本命令
创建版本库
版本库又名仓库,英文名Repository,可以简单'理解成一个目录,这个目录里面的所有文件都被Git管理起来, 每个文件的修改、删除,Git都可以跟踪到,以便任何时刻都可以追踪历史,或者在将来某个时刻可以"还原"。
首先我们选择一个合适的位置,创建一个gitspace空目录(可选),用作以后存储和创建本地版本仓库,在gitspace中创建一个learngit空目录,并切入:
$ mkdir learngit
#创建
$ cd learngit
#切换
$ pwd
#显示当前盘符路径
/d/gitspace/learngit
温馨提示:如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)均不包含中文。
然后通过git init命令把这个目录变成Git可以管理的仓库:
$ git init
Initialized empty Git repository in D:/gitspace/learngit/.git/
瞬间Git仓库就建好了,而且告诉你这是个空仓库(empty Git repository),打开learngit目录可以发现多了一个.git目录,这个目录是Git用来跟踪管理版本仓库的,千万不要乱修改和删除这个目录中任意文件,否则这个git仓库就被你破坏了。
向本地git版本仓库中提交文件
第一步add到暂存区:
$ git add readme.txt
#添加到暂存区
再查看状态:
$ git status
#查看当前git状态(readme.txt被添加到暂存区)
第二步commit到本地版本仓库
$ git commit -m "wrote a readme file"
简单解释下git commit -m
"记录提交内容"命令,-m
后面写的是本次提交的记录内容,当然最好是有意义的,这样就能从历史记录中清楚的知道每次的改动的内容和操作。当然也可以不写,但是对于你自己可能清楚你每一步都干了啥(前提还是提交此处不是很多的时候),如果你在团队开发中做了提交不写记录内容,别人就没办法知道你做了哪些修改操作,所以说可读性非常重要,记录内容是必要的!!!
为什么Git提交文件需要两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件:
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."
版本回退
想回退历史: git log命令查看以便回到哪个版本;
想重返未来版本: git reflog命令查看每个版本的commit id,直接git reset --hard commit_id即可。
撤销修改
如果你不想提交,可以使用git restore file命令撤回操作,也可以使用git checkout -- file命令这两个命令作用是一样的,但是我们推荐使用前者,因为checkout后续我们在分支管理上经常用到,经常用到,而且中间要加上--,否则意思是切换到指定分支,以防使用混乱,还是使用restore更为方便些:
$ git restore readme.txt
$ git status
#查看当前状态
On branch master
nothing to commit, working tree clean
团队协作流程
个人使用流程:拉取:fork => clone => pull
团队协作流程:提交 pull request ,接收pull request
提交pull request
项目的team loader 接收到pull request请求,进行代码检测,决定是不是要合并到代码
项目提交代码
提交代码总共有以下两种方式
1、通过pull、push拉取和推送
优点:合并和提交、推送方便,能够同团队集中式协作
缺点:合并和提交都需要授权,出现恶意推送可能导致代码丢失,难以提前防范
2、使用fork与request拉取和推送
优点:能够进行团队分布式协作,不需要授权,只需要可见即可,代码需要由有权限的人审查合并,可防止恶意推送
缺点:除了pull和push,还需要fork和pull request
pull request具体操作
自己将本地编辑好的代码推送远程仓库 => 找到pull request => 输入项目的源路径推送即可
team loader收到pull request将代码检查一下=> 然后合并到项目远程仓库里面=> 这样就完成了多人写作开发
总结
Git是是目前非常受欢迎的分布式版本控制系统,使用git可以让团队协作的效率大大提高,团队成员可以各自独立的修改代码,然后再将修改的代码提交,如果发现有修改错误还可以很方便的回溯到之前的版本。这对于团队开发来说简直就是福音! 所以我们应该好好学习并掌握git,这样才能在以后的团队协作过程中得心应手,提高效率。