Git随笔

git.jpg

(上图来自廖雪峰Git教程

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

  2. git log 查看提交历史

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

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

    • 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
    • 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
    • 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
  5. git reset HEAD <file> 取消暂存
    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 <name> 强行删除未合并的分支
    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 <name> 创建一个标签
    git tag -a <tagname> -m "blabla...." <commit_id> 指定标签信息
    git tag 查看所有标签
    git show <tagname> 显示标签信息
    git tag -d v0.1 删除标签

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

  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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 看不了。又是黑道,又是毒品的。没什么趣味。估计是作者懒得写了。草草把主角都写死算了。 不过,人在做出重大改变时若无...
    叶开开阅读 258评论 0 0
  • 继“秦火火”事件之后,对于网络上的各种引导式的喷子以及微信微博等各地散播的消息,都有了新一轮的戒备和应对的惩罚措施...
    0e67b7d9b5ad阅读 1,254评论 0 0
  • 一年又一年,一天又一天,晨光熹微之时,他们早已在自己的工作岗位上挥汗如雨了,“唰唰唰”的声音从这头到那头,...
    素心浅吟阅读 1,551评论 15 121
  • NSURLConnection 放在主线程会被阻塞,体验很不好。 一开始初始化的时候使用的是: NSURLRequ...
    IreneWang1988阅读 987评论 0 4
  • 一、视频讲解 趣味动漫小视频教你: 二、笔记推送 三、作业练习 昨日作业答案 今日作业
    BloodMage阅读 184评论 0 0

友情链接更多精彩内容