Git随笔

git.jpg

(上图来自廖雪峰Git教程)

  1. Git rm --cached 从缓存区删除

  2. git log 查看提交历史

    • -p -2 (-p:显示每次内容差异 -2:最近两次提交)
    • --stat:简略的统计信息
  3. git commit --amend:重新提交

  4. git checkout -- 撤销工作区中对文件修改(回到最近一次git commit或git add时的状态)

    • 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
    • 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
    • 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
  5. git reset HEAD 取消暂存
    git reset --hard HEAD^ 回到上一个版本
    git reset --hard commit_id 回到某个版本

  6. git reflog 记录每一次命令

  7. git diff 是工作区(work dict)和暂存区(stage)比较
    git diff --cached 是暂存区(stage)和分支(master)的比较

  8. 配置全局的用户名和邮箱:
    git config --global user.name "xxx"
    git config --global user.email "xxx"

    在项目根目录下单独配置:
    git config user.name “xxx”
    git config user.email "xxx"

    查看当前配置
    git config --list

  9. 创建分支并切换
    git checkout -b dev 创建dev分支并切换到dev分支
    等同于以下两条命令:
    git branch dev
    git checkout dev

    git branch -d dev 删除dev分支
    git branch -D 强行删除未合并的分支
    git branch 查看分支
    git branch -vv 查看本地分支和远程分支的关联关系

  10. git merge 用于合并指定分支到当前分支(fast forward模式)
    git merge --no-ff -m "merge xxx" dev 合并dev分支到当前分支,普通模式合并,合并后的历史有分支(禁用fast forward)

  11. git stash 储藏工作现场,用于把未完成的任务保存起来,切换到其他分支修改bug。
    git stash pop 恢复工作现场
    git stash list 罗列保存的工作现场

  12. git checkout -b branch-name origin/branch-name 在本地创建和远程分支对应的分支,名称最好一致
    git branch --set-upstream-to=origin/remote-branch your-branch 建立本地分支和远程分支的关联(remote-branch:远程分支,your-branch:本地分支)
    (在要关联的本地分支上) git pull origin 远程分支名称
    git pull (origin branch-name) 从远程抓取分支
    git push (origin branch-name) 从本地推送分支

  13. git tag 创建一个标签
    git tag -a -m "blabla...." 指定标签信息
    git tag 查看所有标签
    git show 显示标签信息
    git tag -d v0.1 删除标签

  14. git remote -v 查看远程库信息
    git remote add url 添加远程库
    git remote rm 删除远程库

  15. git remote remove origin 删除远程地址
    git remote add origin ssh://xxx.git(远程地址)

常见问题

  1. 生成密钥:
    ssh-keygen -t rsa -C "your email"
  2. 出现:Could not open a connection to your authentication agent
  • 使用 ssh-agent bash 命令
  • 再使用 ssh-add id_rsa_name 命令即可

参考: 1. 廖雪峰Git教程
    2. Git Book

你可能感兴趣的:(Git随笔)