Git tutorials for beginers
Git 基本原理
Git是代码版本控制(Version Control)的工具,可用于团队代码协作开发。远程服务器有github和gitlab。对于Git来说,整个系统环境是分布式系统,也就是说所有GitHub用户的代码托管在中心服务器中,而开发的时候需要从远程下载到本地。即Remote Repository以及Local Repository。Git push命令将本地仓库更新提交到远程仓库,Git pull可以将远程仓库最新版本代码下载到本地。而在本地又分为了Working Directory, Staging Area 和 Local Repository。所谓的Working Directory就是实际开发的时候你的项目空间,在这个空间可以修改更新开发代码,但是这个空间的代码并没有更新到本地仓库或者远程仓库。Staging Area是本地修改代码的临时缓存空间,只有在缓存空间的代码才能提交到本地仓库。Git add就是将修改的文件添加到缓存空间。Git commit将缓存空间提交到本地仓库。
Git 协作开发
Git协作方法就是一个项目开发团队协同管理同一份项目代码,可独立开发测试项目各个features,最后再将各个features合并在一起,完成整个项目工程。也可以用于项目功能修复和bug调试。因为Git是分布式系统,所以很方便进行大型项目协同开发。Git提供出的功能就是创建分支,分支merge等功能。
Git 命令以及使用方法
创建远程仓库 or 下载远程仓库
- github.com上创建空白仓库
- git客户端命令
mkdir gitTutorials
cd gitTutorials
git init
touch README.txt
git add README.txt
git commit -m "first commit"
git remote add origin http://github.com/yourGitAccount/gitTuturials.git(需要修改成自己在第一步创建的仓库)
git push origin master
- 或者将远程仓库下载到本地
git clone http://github.com/yourGitAccount/gitTuturials.git
cd gitTutorials
修改完代码一般提交步骤
git status
git add [modified files] or git add * (* means all)
git status
git commit -m "[commit content]"
git push
Git 分支学习
(1) 本地分支查看
git branch
(2) 远程分支查看
git branch -r
(3) 查看所有分支
git branch -a
(4) 创建新的本地分支
git branch [branch name]
(5) 切换到新的分支
git checkout [branch name]
(6) 创建新的本地分支并切换到新的分支
git checkout -b [branch name]
(7) 将创建的分支推送到GitHub
git push origin [branch name]
(8) 删除本地分支
git branch -d [branch name]
(9) 删除远程分支
git push origin :[branch name]
(10) 分支合并
For example, 有项目两个分支, 一个是master,一个是feature1分支。在本地创建完feature1分支并修改添加新的内容后,将feature1分支merge到master分支。假设现在正处于feature1分支上。
git checkout master
git merge feature1
git push origin master(将合并后的master分支更新到远程master分支上)
(11) 分支合并以及冲突解决(git rebase)
假设本地有3个分支,分别是master, feature2, feature3。同时feature2和feature3对代码进行了修改。这种有冲突的情况分支合并方式如下:
a. 使用git merge方式合并
git checkout master
git merge feature2
git merge feature3
(这时候如果对同一位置代码进行了修改,会有冲突合并的问题,这时候手动修改相应位置代码,Then)
git add [modified file]
git commit -m "[commit content]"
b. 使用git rebase方式合并
git checkout master
git merge feature2
git checkout feature3
git rebase master
(同样修改冲突代码)
git add [modified file]
git rebase --continue
git checkout master
git merge feature3
其它命令
git stash
git status
git log
git reset --hard [HEAD read from (git log)]
git diff
参考:Git入门