1.git企业开发过程
业务的分支大概有以下几个:
master:代码随时可能上线
develop:代码最新
feature/xxx:实际业务开发分支
release/xxx:预发布分支
fix:修复bug分支
过程大概是这样的:
首先拉取远程仓库,切换到自己得分支进行开发本地feature/xxx,开发完成后,commit进行提交到本地,切换到本地develop,pull 下远程的develop,然后merge feature/xxx into develop,将本地develop push到远程的develop,发布测试QA,QA测试通过后,切换到本地master,pull 下远程的master,本地master得到最新master代码,将本地feature/xxx的代码merge into master中,然后将本地master代码push到远程的master。版本预发布,等等。
注意点:
①比如本地的master,根据本地的master切换出一个分支feature/login,修改完代码后没有commit,那么又直接checkout master,会造成本地feature/login上的代码自动合并到本地master上,所以写完代码后需要提交commit。
②在develop或者master分支 拉取后,合并代码后,需要再pull下远程的代码,
pull = fetch+merge
因为可能会有其他同学push了最新的代码,如果不pull,可能会造成冲突,还有可能造成覆盖远程的代码。
2.基本命令以及注意点如下:
# 配置用户名
git config --global user.name "test"# 配置邮箱
git config --global user.email "email"# 查看用户名
git config --global user.name# 查看邮箱
git config --global user.email# 查询配置
git config --global --list# 生成公钥
ssh-keygen -t rsa# 本地仓库初始化
git init # 修改或新增代码,添加到本地代码暂存区,工作区->暂存区
# 提交单个文件到暂存区
git add a.txt# 提交所有的文件到暂存区
git add .# 本地版本生成,提交,暂存区->本地仓库,每次commit,都会有一个版本记录的生成
git commit -m "提交文件内容说明"# 查看文件的状态, unstaged未暂存,staged已暂存
git status# 查看提交日志
git log[option]# 显示所有分支
git log --all--pretty=oneline #将提交信息显示为一行--abbrev=commit #使得输出的commitId更简短--graph #以图的形式显示git log --pretty=oneline --abbrev-commit --all --graph# vim 编辑文件
vim 文件名# 版本回退,切换
git reset --hard commitID# 查看已经删除的文件记录
git reflog# 一些文件不想让git管理,创建.gitignore
touch .gitignore
vim .gitignore #将不需要管理的文件以及后缀输入# 关于HEAD HEAD指向谁,谁就是当前分支
有多个分支,只能对一个分支进行修改,这个分支称为当前分支。工作区看到的就是当前分支。
是当前分支引用的指针,它总是指向某次commit,默认是上一次的commit。git 是如何知道你当前在哪个分支上工作的呢?其实答案也很简单,它保存着一个名为 HEAD 的特别指针。在 git 中,它是一个指向你正在工作中的本地分支的指针,可以将 HEAD 想象为当前分支的别名。# 查看分支
git branch # 新创建一个分支
git branch 分支名# 切换分支
git checkout 分支名# 创建并切换分支
git checkout -b 分支名 # 合并分支,比如合并到master,首先切换到master
git checkout mastergit merge dev01# 删除分支,-d需要做各种检查
git branch -d 分支名# 做强制删除
git branch -D 分支名# git冲突解决,
# 同一个文件的同一行
# HEAD 到 ==== 指向的是当前分支,
# ===== 到 >>>> dev是冲突分支
<<<<<<< HEAD
count=2
=======
count=1
>>>>>>> dev# 开发中使用的流程与原则# 连接到远程gitee
ssh -T git@gitee.com# 告诉本地远程仓库是哪一个
git remote add origin(远程仓库别名) 远程仓库地址
git remote add origin git@gitee.com:catchcode11/git_test.git# 查看远程仓库
git remote# 将本地代码推到远程仓库
git push origin 远程分支名
git push origin master(远程分支如果是master,那么后面的:master可以省略)# 将本地分支推到远程分支
git push origin 本地分支名:远程分支名
git push origin master:master# 强制推送
git push -f origin 本地分支:远程分支# 查看本地分支和远程分支的对应关系
git branch -vv#
git remote -vv # 绑定本地分支和远程分支
git push --set-upstream origin master:master# 以下是设置的对应关系
$ git push --set-upstream origin master:master
Everything up-to-date
branch 'master' set up to track 'origin/master'.$ git branch -vvdev c0cc516 update file03.txt count=1 dev
* master 15b61e1 [origin/master] git merge conflict# 克隆远程仓库到本地ssh
git clone <仓库路径> [本地目录]# 从远程仓库拉取代码到本地
# 抓取指令:将仓库的更新拉取到本地,但是不进行合并
git fetch [remote name][branch name]
git fetch origin/master# 拉取命令,就是将远程仓库的修改拉取到本地并进行合并,等同于fetch+merge
git pull [remote name][branch name]
git pull origin master# 在push到远程之前,先pull下远程仓库,把冲突解决掉。
git pull origin master,有conflict,在本地解决冲突。