git从工作空间到本地仓库再到远程仓库整个工作流程
git操作规范
- 每次开发都要新建分支(相当于从master上copy一份最新的代码)
- 开发过程中 每天下班前把今天写的代码最好提交到分支上备份.
- 测试无误打算上线时,先合并分支,提交到master上,然后将master上打算上线的文件上线.
(先合并分支在去上线目的:理论和实际保证线上和master上代码完全一致). - 每合并master一次(即上线一次) 都要打tag,即针对该时间点做标记.
(目的:有版本的概念,可以随时查看某个上线节点的代码,方便回滚).
这个过程涉及到的命令参见下面
git相关操作
- workspace: 本地的工作目录。(记作A)
- index:缓存区域,临时保存本地改动。(记作B)
- local repository: 本地仓库,只想最后一次提交HEAD。(记作C)
- remote repository:远程仓库。(记作D)
从流程图可以知道,很多git操作是在工作空间和本地仓库进行的,所以若想与远端仓库同步,要进行拉取和推送等操作进行同步
获取最新代码
- git clone ** //下载到本地
- git checkout master //切换到master
- git pull //拉取当前分支最新的代码
- git checkout -b 分支名字 //新建分支并切换到新的分支
- git branch 分支名 //新建分支
- git checkout 分支名 //切换分支
提交
- git add . 加入跟踪
- git commit -m ‘描述’ //提交到本地仓库并加入描述
- git status // 查看当前状态 不是必须,可随时了解当前状态 建议多用
- git push origin 分支名 //把本地仓库代码推送到远端
打算上线
- git checkout master
- git pull
- git merge 分支名 //将分支合并到master上
- git push origin master
- git tag -a v1.0 -m ‘描述’//针对某一时间点做标记
- git push origin v1.0
之后的每次开发
为保证每次开发前 本地代码和mater是同步的,可以这样做,删除分支,在重建(相当于从mater上copy一份出来)
- git checkout master
- git checkout -b 分支名//最新的开发分支
删除远程分支名
$ git push origin –delete
git push origin –delete tag
删除本地分支
- git branch -d 分支名 //删除分支名
无法切换分支
当前分支有改动,但是没有提交,这时候是无法切换分支的
解决方法有两种是
1.把改动提交
2.git stash
把改动暂存 等切换回来的时候
git stash pop 把暂存的代码取出
远程分支
- git branch -a 查看远程分支
在Git v1.7.0 之后,可以使用这种语法删除远程分支: - git push origin –delete 分支名//删除远程分支名
- git push origin –delete tag 标识名//删除tag
还可以用下面的方法删除远程分支和标识- git push origin :
- git tag -d
- git push origin :refs/tags/
- git push origin :