新手区 Git 基本使用

水泊心 · 2017年01月19日 · 991 次阅读

Git 的使用

以下以 IDEA Git 为例

IDEA Git 配置

此处输入图片的描述

  • 在 File--setting--Version Control--Git 中配置 git 安装路径
  • 在 File--setting--Version Control 中配置 IntelliJIDEA 版本控制,可以清楚的看见版本的变更
  • 在配置完 git 路径后,可以在 Terminal 使用 git 命令行进行操作

新建分支

git branch testing

查看分支

ps:分支前带星号则为目前所在分支

git branch

此处输入图片的描述

更新代码

git pull --rebase origin master

查看状态

git status

此处输入图片的描述

添加所有修改

git add .

提交添加的修改

git commit -m "描述"

此处输入图片的描述

提交到远程分支

git push origin testing

此处输入图片的描述

可以在 Version Control 的 log 中看见所有的提交

此处输入图片的描述

merge 操作:在 master 分支上 merge 自己的分支

分支在 testing 上

  • 查看状态 git status
  • 确认后切换分支 git checkout master
  • pull 远程分支的代码git pull origin master
  • 进行 merge 操作git merge testing

解决冲突

  • 查看当前冲突文件git diff
  • 冲突文件会有如下的部分
<<<<<<< HEAD:
Hello world
=======
Goodbye
>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086
  • HEAD 为 master 的修改,写有 hash 的为分支上的修改,手动根据情况将其改好,去掉分隔符
Hello
  • 接下来再重新提交
git add .
git commit -m "..."

提交代码

  • push 到远程 mastergit push origin master
  • 删除已经合并过的分支git branch -d testing

rebase 操作:在自己的分支上 rebase master 分支

  • 先更新 master 分支代码
git checkout master
git pull --rebase origin master
  • 然后切回自己的分支git checkout testing

  • 一般要合并自己当前分支的多次提交
    查看当前分支创建时的那个 commit,复制 SHA1gitk
    Jietu20170118-102229

  • 将分支 soft reset 回这个位置,但是代码不变

git reset --soft SHA1
git commit -m "..."
  • 进行 rebase 操作git rebase origin master

解决冲突

  • 查看当前冲突文件git diff
  • 冲突文件会有如下的部分
<<<<<<< HEAD:
Hello world
=======
Goodbye
>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086
  • HEAD 为 master 的修改,写有 hash 的为分支上的修改,手动根据情况将其改好,去掉分隔符 Hello
  • 接下来再继续 rebase
git rebase --continue

提交代码

  • 再次通过gitk查看分支的 SHA1 并记录
  • 切回到 master 分支git checkout master
  • 将 master 分支 hard reset 到当前分支并提交到远程
git reset --hard SHA1
git push origin master

通过 github 的 pull request 提交代码

  • 进入 github 页面,找到自己当前的分支新建 pull request

Jietu20170118-105103

  • 新建 pull request

Jietu20170118-105515

  • 确认无误后可以在页面上提交代码
    Jietu20170118-105751

  • 最终效果和 rebase 一致,操作简单,而且可以让别人 review 自己的修改,如果有冲突需要手动将分支 rebase 一下 master

暫無回覆。
需要 登录 後方可回應,如果你還沒有帳號按這裡 注册