• 部分 GIT 命令


    配置本地的用户和邮箱

    git config --local user.name "username"
    git config --local user.email username@mail.com
    

    切换分支

    git checkout dev
    

    创建并切换分支

    git checkout -b private_branch
    

    显示版本库 .git 所在位置

    git rev-parse --git-dir
    

    可以在 .git/hooks 目录下编辑钩子脚本,可以在某些 git 命令执行时运行钩子,脚本名字是固定的比如

    applypatch-msg
    pre-applypatch
    post-applypatch
    pre-commit
    prepare-commit-msg
    commit-msg
    post-commit
    pre-rebase
    post-checkout
    post-merge
    pre-receive
    update
    post-receive
    post-update
    pre-auto-gc
    post-rewrite
    

    添加修改文件

    git add filename
    

    commit 修改

    git commit -m "commit-message"
    

    覆盖上一个 commit

    git commit --amend -m "commit-message"
    

    提交

    git push origin HEAD:refs/for/dev
    

    获取最新代码

    git fetch origin dev
    git rebase origin/dev
    

    查看日志

    git log
    

    撤销当前 commit 回退到某个版本

    git reset --mixed fd3164b68d1cc2c0cf9d8e44a52c8dece0500432
    

    将 dev 的某个修改 merge 到 master

    git checkout master
    git cherry-pick 38361a68      ## commit id
    

    如果遇到 fatal: bad object,可能是因为 master 没有 dev 的数据,要先执行

    git fetch dev    或者    git fetch --all
    

    如果 rebase 操作遇到冲突

    # 1. 查看冲突的文件
    git status
    # 2. 修改文件解决冲突
    # 3. 添加已解决的文件
    git add filename
    # 4. 重新 commit
    git commit -c 
    

    通过创建 private branch 多人开发 dev

    # 1. 创建分支(分支名字可以任意)
    git checkout dev
    git checkout -b sandbox/username/project
    # 2. 修改,commit
    # 3. 提交
    git push origin sandbox/username/project
    # 4. 其他人可以拉这个 branch,修改,提交
    git fetch --all
    git branch -a
    git checkout -b sandbox/username/project origin/sandbox/username/project
    git commit
    git push origin sandbox/username/project
    # 5. 将这个 private branch 统一提交到 dev
    git checkout dev
    git fetch --all
    git branch -a
    git merge --squash origin/sandbox/username/project
    git commit
    git push origin HEAD:refs/for/dev
    


  • 相关阅读:
    漫谈设计模式(三):桥接(Bridge)模式 —— 将类功能、结构两层次分离
    深入理解spring中的AOP原理 —— 实现MethodInterceptor接口,自已动手写一个AOP
    Python面向对象之什么是类(1)
    Python常用模块之logging模块
    Python常用模块之xml模块
    Python常用模块之hashlib
    linux基础命令(一)
    DateTime字段控件值显示短格式的做法
    .net中除去IList中的多余项
    jquery点击按钮显示和隐藏DIv
  • 原文地址:https://www.cnblogs.com/moonlight-lin/p/13973245.html
Copyright © 2020-2023  润新知