工作流程
git支持很多种工作流程,我们采用的一般是这样,远程创建一个主分支,本地每人创建功能分支,日常工作流程如下:
工作流程图
详细步骤:
克隆版本库,获取主干代码
git clone https://gitee.com/xxx/xxx
获取主干最新代码
git checkout master
git pull
新建分支——本地工作代码修改
- 新建一个开发分支work
git checkout -b work
- 去自己的工作分支
git checkout work
-
工作,修改代码
…… -
提交工作分支的修改
git commit -a
- 回到主分支并代码
git checkout master
- 获取远程最新的修改,此时不会产生冲突
git pull
- 回到工作分支
git checkout work
- 用rebase合并主干的修改,如果有冲突在此时解决
git rebase master
- 回到主分支
git checkout master
- 合并工作分支的修改,此时不会产生冲突。
git merge work
- 提交到远程主干
git push
这样做的好处是,远程主干上的历史永远是线性的。每个人在本地分支解决冲突,不会在主干上产生冲突。
** 注:**对于不需要进行版本管理的代码和文件,如编译中间过程文件等添加.gitignore文件忽略。
补充
配置账号
查看账号配置信息
git config –list
设置用户名密码
git config –-global user.name ‘xxx’
git config --global user.email ‘邮箱’
基础操作
初始化git仓库
git init
查看文件的状态(判断是否在XX区)
git status
将所需要添加的文件添加至暂存区
git add xxx(.代表所有)
将暂存区的文件提交至git仓库
git commit -m ‘描述’
删除git里的文件
# 从git中删除文件(暂存区 工作区)
git rm xxx
历史快照
查看历史提交记录
git log
回退本地版本
git reset --hard 9d85ad9a
强制回退远程仓库到当前版本
git push –f
撤销
撤销修改
如果修改了文件,但是没有git add
git status
可以查看所有的改动:
修改:modified
删除:deleted
添加:Untracked
想要放弃修改可以使用checkout命令
取消 仓库所有 修改、删除
git checkout -f
此时你修改的文件和删除的文件都会被恢复,但是你新添加的文件不会被删除
放弃 指定文件 修改、删除
git checkout filename
放弃 指定文件夹 修改、删除
git checkout directory
此时指定目录下修改的文件和删除的文件都会被恢复,但是你新添加的文件不会被删除
撤销git add 操作
git status # 查看有哪些文件被添加
git reset HEAD #如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD fileName #就是对某个文件进行撤销了
撤销git commit 操作
- 不删除工作空间改动代码,撤销commit,并且撤销git add .
git reset --mixed HEAD^ 或 git reset HEAD^
- 不删除工作空间改动代码,撤销commit,不撤销git add .
git reset --soft HEAD^
- 删除工作空间改动代码,撤销commit,撤销git add .
git reset --hard HEAD^
- 只是想改一下注释
git commit –amend #此时会进入默认vim编辑器,修改注释完毕后保存就好了。
分支操作
查看所在分支
git branch
移动到所在分支
git checkout 分支名
创建新的分支
git branch 分支名
创建新分支并移动到该分支
git checkout -b 分支名
删除分支
git branch -d 分支名
合并分支到当前分支
git merge 待合并的分支名
查看远程仓库的分支
git branch –r
git push 推送代码到指定分支上,第一次需要使用
git push --set-upstream origin 分支名
从指定分支拉取更新
git pull origin 分支名
查看本地分支对应远程分支
git branch –vv
设置本地分支对应的远程分支
git branch --set-upstream-to=origin/branchName
创建分支时指定对应的远程分支
git checkout -b [branch] [remotename]/[branch]
#新建本地分支 dev 来跟踪远程分支 dev
git checkout –b dev origin/dev
添加远程地址
#首先与远程仓库建立连接git remote add origin XX你要推送的Coding(Github地址)XX.git
git remote add origin git@gitlab.com/bupt317/newarms.git
参考
https://blog.csdn.net/wh_19910525/article/details/7554489
https://blog.csdn.net/antony9118/article/details/52524873
https://www.cnblogs.com/lfxiao/p/9378763.html
https://www.cnblogs.com/feynman61/p/9005252.html
https://www.cnblogs.com/lyh523329053/p/11530667.html