djk3000 / ME

4 stars 2 forks source link

Git学习笔记1-玩转 Git 三剑客(苏玲) #91

Open djk3000 opened 2 years ago

djk3000 commented 2 years ago

Git基础

git配置

设置用户信息的目的是用来记录人员信息,在提交处能够看到代码的提交人的个人用户信息,Code Review时也可以对应发邮件来提醒。

  1. 配置user信息 git config [--local | --global | --system] user.name 'Your name' git config [--local | --global | --system] user.email 'Your email'

  2. 查看现有配置 git config --list [--local | --global | --system]

说明: -- local 本地仓库(必需在项目文件夹中配置,代表当前项目的用户信息) -- global 当前用户所有仓库(如果全部由本人变更,那可以直接设置global,不用单个设置) -- system 对登录系统的所有用户

git本地仓库认知

git本地仓库:

在git工作目录git add files加入暂存区,然后git commit将暂存区加入仓库。

文件重命名

$ git mv readme readme.md
$ git commit -m'rename readme'

git查看log

  1. 查看简洁的单行历史 git log --oneline

  2. 查看最近的4条历史 git log -n4 git log -4

  3. 查看所有分支的历史 git log --all

  4. 查看指定分支(名为BRANCH_NAME)的历史 git log BRANCH_NAME

  5. 查看图形化的版本历史 git log --graph

  6. 查看所有分支最近4条图形化的单行历史 git log --all -n4 --graph --oneline

  7. 跳转到网页版的git log帮助文档 git help --web log

分支操作

  1. 切换至已有分支 git checkout

  2. 新建分支并切换到新分支 git checkout -b

  3. 删除分支 git branch -d

  4. 分离头指针 git checkout 注:可以将代码回滚至历史的commit,不会破坏及影响其他分支,根据后续需要进行撤销或者提交

2. git使用场景

怎么修改最新commit的message

git commit --amend ,弹出文本编辑器,修改新的commit message

怎么修改老旧commit的message

git rebase -i 注:这里的commit id为父亲的commit id 然后进入下一个界面,将内容中将需要修改的commit的pick的改为reword 或者 r,wq 再进入下一个界面,修改message

怎样把连续的多个commit整理成1个

git rebase -i 注:这里的commit id为想要修改的连续commit的最早的父commit id 然后进入下一个界面,将内容中将需要修改的commit的pick的改为squash 或者 s,wq 再进入下一个界面,新增一个message,同时保留之前的合并的message

怎样把间隔的几个commit整理成1个

和上面那个一样,只是把几个间隔合并的commit放到一起,然后在他们的前面的那个改为squash或者s

怎么比较暂存区和HEAD所含文件的差异

git diff --cached

怎么比较工作区和暂存区所含文件的差异

git diff 注:这是所有的diff,还可以在后面加文件名,比较单独的文件比如:git diff readme.md

如何让暂存区恢复成和HEAD的一样

git reset HEAD 注:默认命令,暂存区会回退到工作区,加--hard就是直接消除工作区修改内容

如何让工作区的文件恢复为和暂存区一样

git checkout

怎样取消暂存区部分文件的更改

git reset HEAD 和上面的那个一样,多加了文件名

消除最近的几次提交

git reset --hard 注:会消除暂存区和工作区(慎用)

看看不同提交的指定文件的差异

git diff [-- filename] 注:不加filename就是比较所有差异,commit id也可以改为分支名

正确删除文件的方法

git rm

开发中临时加塞了紧急任务怎么处理

git stash 暂存起来,将当前工作区和暂存区的内容迁移到一个额外的栈上 git stash list 查看暂存的记录列表 git stash apply 恢复栈顶的保存记录,列表里还保留该记录。 git stash pop 恢复栈顶的保存记录,并把记录列表里的该记录删除。

如何指定不需要Git管理的文件

在 .gitignore 文件中声明文件类型或文件名即可(必须是 .gitignore ) 注:gitignore.io这个可以自动在线根据语言配置ignore文件

如何将Git仓库备份到本地

  1. 远端clone到本地 git clone --bare file:///User/... 加了file://的为智能协议,不加为哑协议,智能协议可以看见进度并且传输速度更快
  2. 推送本地到远端 git remote add file:///User/... 在本地添加远端服务器,name为该服务器别名 然后再本地建一个分支进行推送,分支为new git push --set-upstream new 推送至远端

参考视频

玩转 Git三剑客