Git实用笔记

来源:互联网 发布:阿里云中央仓库 编辑:程序博客网 时间:2024/06/14 07:21

  • 写在开头
  • 对本人实用例子
    • 如果是撤销所有的已经add的文件
    • 从别人的远程分支checkout 一个本地的分支
    • 可以合并代码并且不会有merge的commit
    • git fetch更新远程分支
    • 删除某个branch
    • 查看某个文件的改动历史
    • 比较两个分支上的文件的区别
    • git 合并多个commit
    • git更新远程分支从fork的源仓库别人的更新代码
  • ERROR
    • Interactive rebase already started

写在开头

这个并不是介绍Git如何使用的,而是记下了我需要用到某些功能时才去查询的,也许会是实用功能,也许并不会经常用到,当然本篇还记录了使用git中遇到的一些错误以及解决方法

(对本人)实用例子

如果是撤销所有的已经add的文件:

git reset HEAD .

从别人的远程分支checkout 一个本地的分支

git checkout -b mt-dcs remotes/origin/mt-dcs

可以合并代码并且不会有merge的commit

git pull -r origin xxx(就是rebase)

git fetch更新远程分支

git branch -a 只是显示保存在本地的远程分支的信息,有时会看不到远程分支新建的分支

删除某个branch

git branch -d xxx

查看某个文件的改动历史

git log -p filename

比较两个分支上的文件的区别

   git diff master 分支名 (比较主分支和另一个分支的区别)

git 合并多个commit

git rebase -i xxxx

- -i xxx为不需要参与合并的commit的值
- p(pick) 提交的commit
- s(squash )为合并到前一个commit

例如

commit 3   message3commit 2   message2commit 1   message1git rebase -i 1

出现

pick 2 message2pick 3 message3#.....#.....

此时改为

pick 2 message2squash 3 message3#.....#.....

即可将commit3合并到commit2,之后可以修改合并后的commit信息

合并后提交要 git push -f origin xxx

git更新远程分支(从fork的源仓库(别人的)更新代码)

先从远程别人的分支合并到本地分支,在push到自己的远程分支。

如果从图形界面会导致多一个commit

步骤:

  1. 添加一个远程仓库,此时只是空壳,还没有同步内容,引用 fork 的原仓库地址

    git remote add originUpstream https://github.com/AFNetworking/AFNetworking.git
  2. commit(提交)本地的变更;如果本地没有修改内容,此步骤可忽略

    git commit
  3. 更新远程仓库,从引用 fork 的原仓库地址同步内容,此时原仓库的 master(主干分支)已经可以在本地访问了

    git remote update originUpstream
  4. checkout(检出)用于操作的本地分支

    比如 master分支git checkout master

    如果此时分支为已检出状态,此步骤可忽略

  5. 直接从远程仓库的分支 pull(拉取) 数据

    git pull originUpstream master或者本地已检出分支基于远程仓库的分支进行 rebase(变基)操作git rebase originUpstream/master
  6. 把本地已检出分支的已提交数据 push(推送) 到自己 fork 的仓库中

    git push origin master

ERROR

Interactive rebase already started

If you accidentally exit while doing an interactive rebase, you can clean it with this command.

git rebase -i --abort
原创粉丝点击