git笔记

git笔记

  • 初始化

    #建立空库
    git init --bare
    #创建公私钥key 
    #Generate a new ED25519 SSH key pair:
    ssh-keygen -t ed25519 -C "email@example.com"
    #Or, if you want to use RSA:
    ssh-keygen -o -t rsa -b 4096 -C "email@example.com"
    
  • 常用命令列举

    git config --global user.name "tiaoh"
    git config --global user.email tiaoh@example.com
    git config --list
    git log 
    git add .
    gi status
    git diff 
    git commit -am ""
    git remote -v 
    git clean [option] #移除所有未跟踪文件,一般会加上参数-df,-d表示包含目录,-f表示强制清除。
    git remote add origin  git@git.tiaoh.com:eblis/test_gitflow.git #添加一个名叫origin的主机 git地址为git@git.tiaoh.com:eblis/test_gitflow.git
    git push -u origin master #本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了,-u 参数指定一个默认主机
  • 一般操作流程

    1. git clone ‘远程分支’ 到本地,作为工作目录
    2. 在本地添加文件或修改文件
    3. 期间如果远程源repo 有文件变更,那么需要 git pull 进行本地同步
    4. 在本地修改后,可以通过 git status 查看修改的文件,然后通过 git add 添加文件到暂存区
    5. 添加文件后使用 git commit 添加到当前工作区
    6. 在修改完成后,如果发现错误,可以撤回提交修改,再次提交
    7. git push 将本地文件推送到远程git服务器
  • 撤销操作

    1. 撤销提交

      1. 使用 git log 查看需要回退的 commit
      2. 使用 git reset –soft 448017e896836ec356f7c47c068b093aefee2c91 回退指定版本、 并使用 git log 确认是否回退成功
      3. 也可以使用git reset --soft HEAD~1 快捷回退上个版本 . HEAD指代当前 ~1 指代上个版本
      4. 参数soft指的是:保留当前工作区,以便重新提交、还可以选择参数hard,会撤销相应工作区的修改,一定要谨慎使用
    2. 强制发布版本

      1. 修改完成文件后使用git push origin master –force 强制提交(必须使用 –force
      2. 可以通过 git reflog 查看确认
  • 分支操作

    1. 创建分支 git branch -a
    2. 创建新的分支,如果加上 -b 那么立即切换新的分支工作 git checkout -b dev
    3. 查看当前分支 git status
    4. 切换到master 主干 git checkout master (也可以指定分支切换 git checkout -b
    5. 合并分支 git merge dev 完成后 git push 合并到远端master 主干
    6. 删除 本地dev分支 git branch -d dev
    7. 删除远端分支 git push origin --delete dev
  • tag 标签

    1. 创建 带注释、带备注的 tag git tag -a tagName -m "my tag"
    2. 查看tag列表 git tag -l 查看详细 git show tagname
    3. 推送tag 到远端 git push origin --tags 默认该命令会全部推送去远端,当然也可以指定tag推送比如 git push origin v0.11
    4. 同样也可以切换tag git checkout v0.11 这时就可以根据这个tag 建立新的 branch git checkout -b
    5. 同样可以删除本地tag git tag -d v0.11 、远端删除 git push origin :refs/tags/v0.11
  • 注意点

    > Git有两种合并:一种是"直进式合并"(fast forward),不生成单独的合并节点;另一种是"非直进式合并"(none fast-forword),会生成单独节点。前者不利于保持commit信息的清晰,也不利于以后的回滚,建议总是采用后者(即使用–no-ff参数)。只要发生合并,就要有一个单独的合并节点。 所以在任何时候建议使用 git merge --no-ff -m "merge new_branch to master " master new

  • 通用流程

    1. git clone 仓库
    2. git branch 查看本地分支
    3. git branch -a 查看所有分支(远程、本地)
    4. git checkout -b dev origin/dev 把远程的origin/dev 分支放在新创建的本地dev,并切换进入该dev工作区
    5. git remote -v 查看上游 upstream 别名
    6. git remote add ops git@git.tiaoh.com:eblis/ops.git 添加远程别名和git地址
    7. git fetch ops 抓取最新的版本
    8. git merge ops/dev 合并到本地 或 git pull ops/dev
    9. git add . && git commit -am "commit" && git pull ops/dev&& git push (特别注意在push前一定要先pull抓取最新的代码下来,防止远端有更新的版本导致冲突)
    10. git push origin HEAD:dev如果远端分支名不一致需要指定分支名
    11. 登入到gitlab 或者github 相关平台 提交 New Pull Request 请求合并项目
    12. 项目负责人review 代码批准,负责人点击 Merge Pull Request 确认合并
打赏作者

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据