美文网首页
Git 高级命令

Git 高级命令

作者: sttech | 来源:发表于2017-08-15 10:59 被阅读0次
命令 作用
git log -- online 查看历史记录简介版本
git log --oneline --graph 查看什么时候出现了分枝,什么时候合并,开启拓扑图选项
git log --reverse --oneline 可以逆向显示所有的提交
git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges 如果我要看 Git 项目中三周前且在四月十八日之后的所有提交,我可以执行这个(我还用了 --no-merges 选项以隐藏合并提交)

Git push


通常对于一个本地新建的分枝,例如 git checkout -b develop ,在develop分枝中commit了代码之后,如果直接执行git push 命令,在develop 分枝奖不会被push到远程仓库中(但此时,操作有可能会推送一些代码到远程仓库,这取决于我们本地git.config 配置中的push default默认行为),因此我们至少需要指定push的分枝名:eg git push origin develop ,才能讲代码推送到远程仓库。

但是,当我们通过显示制定分枝名进行初次push操作之后,本地有了新的commit 此时在执行git push 命令会有什么效果呢???

如果你未曾改过 git config 的配置文件,那么git 2.0 版本之后 通常会push失败,并且会收到如下的警告

屏幕快照 2017-08-15 10.40.13.png

原因是因为 2.0 之后的版本git 全局配置中的一个属性 git.default 属性,其决定了git push 操作的默认行为 ,2.0 之后这个属性改为了 simple

git.default 的值有以下可选
nothing current upstream simple matching
  • nothing - push 无效,除非指定远程分枝
  • current -push 当前分枝到远程同名分枝,(如果远程同名分枝不存在,会自定创建同名分枝)
  • upstream push当前分枝到它的upstream 分枝(经常用于push/pull到同一远程仓库的情况)
  • simple push 和upstream 类型,但是,它必须保证本地分枝和它的远程分枝同名否则拒绝push
  • matching push到本地和远端都存在的同名分枝
通过git config --global push.default 'option'改变push.default的默认行为

git pull


当我们未指定upstream 时,执行git pull 的时候通常会得到如下的提示

屏幕快照 2017-08-15 10.55.51.png

当我们执行git pull的时候实际上是执行git fetch + gi t merge 操作,fetch 操作将会更新本地仓库的remote tracking 并不会对本地当前代码照成影响,当我们执行merge操作的时候,如果我们没有指定当前分枝的upstream ,它并不知道我们要合并哪个分枝到当前分枝,所以通过以下代码来执行当前分枝的upstream

git branch --set-upstream-to=origin/<branch> develop
// 或者git push --set-upstream origin develop 

相关文章

  • GIt 操作补充

    常用的git操作命令 常用的git操作命令已经能够满足日常的工作需求 现补充一些高级命令 git branch -...

  • GIT中数据的存储与组织

    GIT中数据的存储与组织 我们经常使用一些Git的命令,例如checkout,commit等命令,这些都是高级命令...

  • Git高级命令

    命令 1:查看历史记录 git log 可以查看所有提交记录 命令 2:git commit --amend 适...

  • Git 高级命令

    Git push 通常对于一个本地新建的分枝,例如 git checkout -b develop ,在deve...

  • Git高级命令

    ① git rebase :在新位置重新提交,改变 commit 序列的基础点。把 merge 换成 rebas...

  • git 高级命令

    1.列出打tag的日期和tags gitfor-each-ref --sort=taggerdate --form...

  • Git高级命令

    git add -p以前我git add的时候,经常会把一些本地的用于调试的代码add进去(比如console.l...

  • Git高级命令

    Git sparse-checkout 检出指定目录或文件

  • git操作高级命令

    Git 是一款开源优秀的版本管理工具,它最初由 Linus Torvalds 等人开发,用于管理 Linux Ke...

  • Git的高级命令

    之前Git操作——简单使用 远程创建一个git项目,clone到本地,即为本地仓库(即一个含有.git隐藏文件夹的...

网友评论

      本文标题:Git 高级命令

      本文链接:https://www.haomeiwen.com/subject/kasmrxtx.html