一 git多人协作开发
$ git 多人协作开发介绍
- 需要有一个服务器
- 除了在本地提交,还需要往服务器提交
- 需要添加 .gitignore 文件
- 有可能产生冲突,需要手动解决
$ git 多人协作过程
- 初始化一个 git 服务器
- 添加
.gitignore
文件 - 项目经理创建项目
- 开发人员克隆服务器版本库到本地
- 开始开发
git init --bare //建立一个git服务器代码仓库
git clone <服务器地址> //建立一个git服务器代码仓库
git status //查看 git 工作区和暂存区 文件状态
git add . //将文件从工作区移到暂存区
git commit -m "注释文字" //将文件从暂存区提交到代码区,完成一次版本提交
git push //把本地版本库提交到服务器,类似 svn 的 commit
git pull //把将服务器的最新版本拉取到本地,并合并代码,类似 svn 的 update
git config --global push.default simple/maching //默认simple,只提交当前分支
$ 冲突解决
- 养成先执行
git commit
命令后;再执行git pull
;最后执行git push
的好习惯;
二 标签管理
$ tag 的作用
- tag 可以对 git 版本库中阶段性的,重要的版本做一个标记(比如说 appStore 上线版本);
- 我们可以通过 tag 快速地定位到某个重要版本;
$ tag 的相关操作
- tag 的相关操作包括,添中、删除、查看 tag。将 tag 提交到服务器等
git tag –a 1.0 –m “name” //添加新标签
git tag //查看所有tag
git tag -n // 查看所有 tag,带注释
git checkout 1.0 //切换到某一标签版本
git show 1.0 //查看某个标签及其对应版本的详细信息
git tag -d 1.0 //删除一个版本
git push origin 1.0 //将版本推送到服务器
三 分支管理
$git 分支
- 分支就是从主干(主分支)的某一个版本分出来的一个支干
- 每一条支干上的操作相互独立
- 分支之间可以相互合并
- 在解决 bug, 开发新功能时,可以用分支
分支的操作
- 分支的操作主要涉及分支的创建、切换、删除、提交、合并等
git branch //查看当前分支
git branch -a //查看所有分支
git checkou -b dev //创建一个分支 dev, 并切换到该分支
git push origin dev //在本地创建一个分支
git checkout master //切换到分支 master
git branch -D dev //删除本地 dev 分支
git git push origin :dev //删除远程 dev 分支
git merge dev //将 dev分支合并到当前分支
$ git命令总结
//git 本地版本管理命令
git init //初始化一个本地git代码仓库
git confit user.name //配置用户名
git config user.email //配置用户邮箱
git status //查看 git 工作区和暂存区 文件状态
git add . //将文件从工作区移到暂存区
git diff //比较当前版本和之前版本的区别
git commit -m "注释文字" //将文件从暂存区提交到代码区,完成一次版本提交
git log //查看截止到当前版本的历史记录
git reset --hard HEAD^ //将代码回滚到之前版本
git reflog //查看所有操作过的历史记录
//多人协作开发命令
git init --bare //建立一个git服务器代码仓库
git clone <服务器地址> //建立一个git服务器代码仓库
git push //把本地版本库提交到服务器,类似 svn 的 commit
git pull //把将服务器的最新版本拉取到本地,并合并代码,类似 svn 的 update
git config --global push.default simple/maching //默认simple,只提交当前分支
//tag及分支命令
git tag –a 1.0 –m “name” //添加新标签
git tag //查看所有tag
git tag -n // 查看所有 tag,带注释
git checkout 1.0 //切换到某一标签版本
git show 1.0 //查看某个标签及其对应版本的详细信息
git tag -d 1.0 //删除一个版本
git push origin 1.0 //将版本推送到服务器
//分支相关命令
git branch //查看当前分支
git branch -a //查看所有分支
git checkou -b dev //创建一个分支 dev, 并切换到该分支
git push origin dev //在本地创建一个分支
git checkout master //切换到分支 master
git branch -D dev //删除本地 dev 分支
git git push origin :dev //删除远程 dev 分支
git merge dev //将 dev分支合并到当前分支
$ git注意事项
- .git不能修改
- 提交之前,需要先配置个人信息
- 在项目新建之前,需要添加 .gitignore文件(工作当中是项目经理的活)
- push 之前,先执行
commit
, 再执行pull
的操作 - 项目开发过程中,未经允许,不能修改别人的代码
- 重要的版本打 tag
$ git扩展
-
配置别名: git 的的命令可以通过配置别名的行式,使命令变得更简单
比如说:`$ git config --global alias.st status` 意思是给 `status` 命令配置一个别名 `st`, 敲git st就表示git status $ git config --global alias.st status $ git config --global alias.co checkout $ git config --global alias.ci commit $ git config --global alias.br branch $ git config --global alias.unstage 'reset HEAD' $ git ci -m "bala bala bala..." $ git unstage test.py 实际上Git执行的是: $ git reset HEAD test.py $ git config --global alias.last 'log -1' 这样,用git last就能显示最近一次的提交: 甚至还有人丧心病狂地把lg配置成了: 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" 来看看git lg的效果: git-lg
-
配置文件
- 配置Git的时候,加上--global是针对全局的 git 仓库起作用的,如果不加,那只针对当前的仓库起作用。
-
配置文件放哪了?每个仓库的Git配置文件都放在.git/config文件中:
$ cat .git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true ignorecase = true precomposeunicode = true [remote "origin"] url = git@github.com:michaelliao/learngit.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master [alias] last = log -1
- 全局的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中:
$ cat .gitconfig [alias] co = checkout ci = commit br = branch st = status [user] name = Your Name email = your@email.com