git 管理代码几个概念
工作区: 仓库文件夹里除.git目录所有文件内容
版本库: .git目录,存储着所有记录版本信息
暂存区: //文件修改完add操作后先存于暂存区
分支: //commit操作后,即将暂存区文件提交到当前分支
HEAD指针: //指向当前分支
配置仓库
git config user.name 'loukit'
git config user.email 'loukit@sina.com'
git config -l //查看配置信息
初始化仓库
git init //初始化本地仓库
git init --bare //创建共享库
git status//查看当前路径所有文件状态
git status Test.m//查看test.m文件状态
提交暂存区
git add Test.m //添加Test.m文件到暂存区
git add . //添加当前目录下所有文件到暂存区
提交到分支
git commit -m '注释说明' //将暂存区所有文件提交到当前分支
git commit -m '注释说明' Test.m //将暂存区所Test.m文件提交到当前分支
创建分支
git checkout -b new_feature//创建分支并切换到该分支
git branch //查看当前项目所有分支
git branch -r //查看项目远程的分支
git push origin 分支名字 //将分支推送到远端仓库
合并分支
1) 加载(state)并提交文件
git add .git commit -m "注释说明"
2) 切到主分支
git checkout master
3) 合并
git merge new_feature
丢弃分支
1) 加载(state)并提交文件
git add .git commit -m "注释说明"
2) 切到主分支
git checkout master
删除分支
git branch -d new_feature
备注:如果分支已经合并,只会删除分支,若未合并,执行该命令会得到错误信息
git branch -D new_feature//大写D 可强制删除未合并分支
版本回退
git reset
git reset --hard HEAD^ //回退到上一个版本
git reset --hard HEAD^^ //回退到上上一个版本
git reset --hard HEAD~N //回退到上N个版本(N是一个整数)
git reset --hard 版本号 //回退到任意一个版本
代码clone、pull、push
git clone //下载远程仓库到本地
git clone 仓库的URL //下载远程仓库到当前路径
git clone 仓库的URL 存放仓库的路径 //下载远程仓库到特定路径
git pull //更新本地仓库至最新改动
git push //将本地的仓库信息推送到远程仓库
打Tag(版本备份)
git tag //查看版本标签
git tag -a v1.0 -m 'v1.0版本完成' //打完tag 还是处于本地,需要提交远程代码库
git push origin v1.0 //tag 上传远程代码库 (版本v1.0要匹配对)
冲突解决
如:没有pull到最新代码直接修改后push,出现冲突
解决:git pull 最新代码-->手动解决冲突-->提交(git add与git commit操作)
.gitignore文件
配置不需要提交的文件
其他命令
git status // 查看文件状态
红色: 代表被添加或者修改的文件没有被添加到暂缓区
绿色: 代表文件在暂缓区,等待提交
git help //查看git命令帮助手册
1.bug修复部分:
1) 将当期v2.0开发中的代码提交到远程库
2) 另外克隆一份远程代码到本地(包含着v2.0开发中的代码)
git clone 仓库的URL
3) 从v1.0创建分支v1.0fixbug并切到v1.0fixbug分支
git checkout v1.0 -b v1.0fixbug
4) 修复bug后提交到本地版本库
git add .
git commit -m 'v1.0 bug flex'
5) 打tag v1.1作版本备份,并上传共享库(v1.0fixbug分支共享库)
git tag -a v1.1 -m 'ta v1.1'
git push origin v1.1
6)提交整个分支到共享库
git push origin v1.0fixbug
(此时共享库应该有master,v1.0fixbug两个分支)
2.代码合并操作部分:
1) 合并代码,将远程v1.0fixbug分支合并到本地master分支(即当期v2.0开发)
git pull //更新本地分支
git merge origin/v1.0fixbug -m "合并分支" //master分支下
2) 提交本地库并上传到共享版本库
git add .
git commit -m “合并分支”
git push
3) 此时可以删除共享库分支 v1.0fixbug
git branch -r -d origin/v1.0fixbug
工作区: 仓库文件夹里除.git目录所有文件内容
版本库: .git目录,存储着所有记录版本信息
暂存区: //文件修改完add操作后先存于暂存区
分支: //commit操作后,即将暂存区文件提交到当前分支
HEAD指针: //指向当前分支
配置仓库
git config user.name 'loukit'
git config user.email 'loukit@sina.com'
git config -l //查看配置信息
初始化仓库
git init //初始化本地仓库
git init --bare //创建共享库
git status//查看当前路径所有文件状态
git status Test.m//查看test.m文件状态
提交暂存区
git add Test.m //添加Test.m文件到暂存区
git add . //添加当前目录下所有文件到暂存区
提交到分支
git commit -m '注释说明' //将暂存区所有文件提交到当前分支
git commit -m '注释说明' Test.m //将暂存区所Test.m文件提交到当前分支
创建分支
git checkout -b new_feature//创建分支并切换到该分支
git branch //查看当前项目所有分支
git branch -r //查看项目远程的分支
git push origin 分支名字 //将分支推送到远端仓库
合并分支
1) 加载(state)并提交文件
git add .git commit -m "注释说明"
2) 切到主分支
git checkout master
3) 合并
git merge new_feature
丢弃分支
1) 加载(state)并提交文件
git add .git commit -m "注释说明"
2) 切到主分支
git checkout master
删除分支
git branch -d new_feature
备注:如果分支已经合并,只会删除分支,若未合并,执行该命令会得到错误信息
git branch -D new_feature//大写D 可强制删除未合并分支
版本回退
git reset
git reset --hard HEAD^ //回退到上一个版本
git reset --hard HEAD^^ //回退到上上一个版本
git reset --hard HEAD~N //回退到上N个版本(N是一个整数)
git reset --hard 版本号 //回退到任意一个版本
代码clone、pull、push
git clone //下载远程仓库到本地
git clone 仓库的URL //下载远程仓库到当前路径
git clone 仓库的URL 存放仓库的路径 //下载远程仓库到特定路径
git pull //更新本地仓库至最新改动
git push //将本地的仓库信息推送到远程仓库
打Tag(版本备份)
git tag //查看版本标签
git tag -a v1.0 -m 'v1.0版本完成' //打完tag 还是处于本地,需要提交远程代码库
git push origin v1.0 //tag 上传远程代码库 (版本v1.0要匹配对)
冲突解决
如:没有pull到最新代码直接修改后push,出现冲突
解决:git pull 最新代码-->手动解决冲突-->提交(git add与git commit操作)
.gitignore文件
配置不需要提交的文件
其他命令
git status // 查看文件状态
红色: 代表被添加或者修改的文件没有被添加到暂缓区
绿色: 代表文件在暂缓区,等待提交
git help //查看git命令帮助手册
git log //查看当前路径所有文件日志
git reflog //查看指令使用记录(能够查看所有的版本号)
git rm //删除文件(删完之后要进行commit操作,才能同步到版本库)
git diff Test.m //查看test.m文件最新改动地方
tag上bug修复步骤流程
假设远程库拥有tag v1.0,本地v2.0开发中,现v1.0出现bug需要修复1.bug修复部分:
1) 将当期v2.0开发中的代码提交到远程库
2) 另外克隆一份远程代码到本地(包含着v2.0开发中的代码)
git clone 仓库的URL
3) 从v1.0创建分支v1.0fixbug并切到v1.0fixbug分支
git checkout v1.0 -b v1.0fixbug
4) 修复bug后提交到本地版本库
git add .
git commit -m 'v1.0 bug flex'
5) 打tag v1.1作版本备份,并上传共享库(v1.0fixbug分支共享库)
git tag -a v1.1 -m 'ta v1.1'
git push origin v1.1
6)提交整个分支到共享库
git push origin v1.0fixbug
(此时共享库应该有master,v1.0fixbug两个分支)
2.代码合并操作部分:
1) 合并代码,将远程v1.0fixbug分支合并到本地master分支(即当期v2.0开发)
git pull //更新本地分支
git merge origin/v1.0fixbug -m "合并分支" //master分支下
2) 提交本地库并上传到共享版本库
git add .
git commit -m “合并分支”
git push
3) 此时可以删除共享库分支 v1.0fixbug
git branch -r -d origin/v1.0fixbug