git 操做(经常使用命令)
注意:远程仓库的默认名称是origin
-
git remote add <name> <url>(本地关联远程仓库)
-
git remote(查看远程仓库的信息 git remote -v 显示更详细的信息)
-
git clone <url>(克隆远程仓库)
-
git push -u origin master
-
git pull
-
git branch(查看当前分支)
-
git checkout -b <分支名>(在当前分支建立新的分支而且切换到对应分支,没有 -b 表示有分支,直接切换到对应分支)
-
git merge <分支名>(合并指定分支到当前分支下。通常先切换到目标分支,而后在目标分支下去合并须要被合并的分支)
-
git branch -D <分支名>(在某个分支上删除指定的分支)
-
git init(变成git能够管理的仓库)
-
git status(查看当前分支的内容是否被修改)
-
git diff 文件名 (查看对应文件被修改的部分,为确保万一,该命令在add以前执行)
-
git add 文件名(修改文件后添加到暂存区,后面是“.”时,所有)
-
git commit (把暂存区的全部内容提交到当前分支)
-
git log 查看日志
-
git reset --hard <具体的版本命令>(版本命令能够简写,不须要写全,通常写前几个能区分开来就好)
-
git reset --hard HEAD^(回退到上一个版本)
-
git reset --hard HEAD^^(回退到上上一个版本)
-
git reset --hard HEAD~n(回退到第n个版本)
遵照:
-
在哪一个分支,就拉取哪一个分支的代码 git pull origin <具体的分支名>
-
在哪一个分支,就推送哪一个分支到远程 git push origin <具体的分支名>
-
若是在哪一个分支上执行推送命令失败,哪么咱们就先执行拉取命令而后再执行推送命令。
-
在A分支上须要合并B分支上的代码,就须要先切换到A分支上,而后在A分支上再合并B分支上的代码
-
执行git commit 命令时,开发内容描述要用简单、直接的英文描述。
解决冲突
注意:在公司项目的开发过程当中,通常会对应三种不一样的环境。开发环境、测试环境和生产环境。
-
咱们在开发环境写代码,开发环境和远程的分支都对应同一个测试分支(staging),名字随意。
-
远程的staging分支对应测试环境。咱们每开发一个功能,都要合并到本地的staging分支,而后将其推送到远程。
-
远程的staging分支对咱们解决冲突起着重要的做用
-
可能有的公司并无staging这样一个测试分支对应的测试环境,直接是master分支对应的一个测试环境。
-
每作一个功能,将功能对应的分支合并到own_test,而后推送到远程。
最多见产生冲突的缘由
开始解决冲突
注意:对于一个普通的开发者来讲,咱们不该该直接将咱们的功能分支合并到master分支上。这种事情仍是让大佬审核后去作。
远程pr合并时冲突的解决方法
-
本地开发环境切换到master分支,而后使用 git pull 拉取远程最新master分支上的代码(被多我的修改)。
-
而后本地切换到与远程对应提pr产生冲突的分支D(准备解决冲突)。
-
切换到本地D分支后,使用 git merge master 命令合并master分支上的代码(冲突产生)。
-
与远程 staging或者own_test 分支上的代码做比较,解决本地D分支产生冲突的部分(真正解决冲突)。
-
本地D分支commit后,使用 git push origin D 命令将D分支推送到远程(远程提pr对应的D分支冲突解决)。