跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 各位 Git 大佬,请教一个问题
未分類
30 4 月 2020

各位 Git 大佬,请教一个问题

各位 Git 大佬,请教一个问题

資深大佬 : dingyaguang117 10

弄了个自动部署的脚本,现在有个问题想请教一下 git 大佬

简单来讲就是需要:切换到指定分支的最新 commit,但是需要考虑到下面的几种情况

(假设需要切换到 test 分支)

1. 本地没有 test 分支
2. 当前分支有未提交的改动(可以直接 reset 操作)
3. 本地有 test 分支,但是不是最新
4. 当前分支可能已经在 test 或者不在

试验过下面脚本

“`
git reset –hard;
git fetch -u origin test:test;
git checkout test;
“`

会有问题(本地会出现很多 modifed 状态的文件),请教上面的脚本为啥会有问题

大佬有話說 (4)

  • 資深大佬 : yukiloh

    绑定,顺便问一个我自己遇到的问题
    master 用于公共展示
    dev 分支用于开发,但是 dev 会有很多琐碎的开发文件,每次完成小阶段提交到 master 前都要手动清理一下,有啥好方案吗,难道是.ign 来写规则

  • 主 資深大佬 : dingyaguang117

    刚才又重新测试了一下, 问题出现在下面一行:

    git fetch -u origin test:test;

    如果当前分支已经是 test,会更新 test 分支指向最新 commit, 但是不会更新本地工作区,所以本地的出现很多 modified 状态的文件;

    这时候再 git reset –hard 一次就好了。

    更新了一下,下面的脚本应该能满足上述 4 种情况,无论当前在哪个分支,是否有改动,本地 test 分支是否存在,都可以切换到最新的 test 分支

    “`
    git reset –hard;
    git fetch -u origin test:test;
    git checkout test;
    git reset –hard;
    “`

  • 主 資深大佬 : dingyaguang117

    @yukiloh 或者你用一个 GUI 管理工具,每次只把代码文件 add 到 stage,也就是过完代码拖一下的事情

  • 資深大佬 : billlee

    看各个 CI 平台构建的时候一般都是 detached head 状态,如果我来写大概会这样吧:

    “`
    git fetch
    git checkout –force $(git rev-parse origin/test)
    git clean -f -d
    “`

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具