Open djk3000 opened 2 years ago
设置用户信息的目的是用来记录人员信息,在提交处能够看到代码的提交人的个人用户信息,Code Review时也可以对应发邮件来提醒。
配置user信息 git config [--local | --global | --system] user.name 'Your name' git config [--local | --global | --system] user.email 'Your email'
查看现有配置 git config --list [--local | --global | --system]
说明: -- local 本地仓库(必需在项目文件夹中配置,代表当前项目的用户信息) -- global 当前用户所有仓库(如果全部由本人变更,那可以直接设置global,不用单个设置) -- system 对登录系统的所有用户
git本地仓库:
工作区 (working directory)
暂存区 (stage)
仓库区 (repository)
在git工作目录git add files加入暂存区,然后git commit将暂存区加入仓库。
$ git mv readme readme.md $ git commit -m'rename readme'
查看简洁的单行历史 git log --oneline
查看最近的4条历史 git log -n4 git log -4
查看所有分支的历史 git log --all
查看指定分支(名为BRANCH_NAME)的历史 git log BRANCH_NAME
查看图形化的版本历史 git log --graph
查看所有分支最近4条图形化的单行历史 git log --all -n4 --graph --oneline
跳转到网页版的git log帮助文档 git help --web log
切换至已有分支 git checkout
新建分支并切换到新分支 git checkout -b
删除分支 git branch -d
分离头指针 git checkout 注:可以将代码回滚至历史的commit,不会破坏及影响其他分支,根据后续需要进行撤销或者提交
git commit --amend ,弹出文本编辑器,修改新的commit message
git rebase -i 注:这里的commit id为父亲的commit id 然后进入下一个界面,将内容中将需要修改的commit的pick的改为reword 或者 r,wq 再进入下一个界面,修改message
git rebase -i 注:这里的commit id为想要修改的连续commit的最早的父commit id 然后进入下一个界面,将内容中将需要修改的commit的pick的改为squash 或者 s,wq 再进入下一个界面,新增一个message,同时保留之前的合并的message
和上面那个一样,只是把几个间隔合并的commit放到一起,然后在他们的前面的那个改为squash或者s
git diff --cached
git diff 注:这是所有的diff,还可以在后面加文件名,比较单独的文件比如:git diff readme.md
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 恢复栈顶的保存记录,并把记录列表里的该记录删除。
在 .gitignore 文件中声明文件类型或文件名即可(必须是 .gitignore ) 注:gitignore.io这个可以自动在线根据语言配置ignore文件
玩转 Git三剑客
Git基础
git配置
设置用户信息的目的是用来记录人员信息,在提交处能够看到代码的提交人的个人用户信息,Code Review时也可以对应发邮件来提醒。
配置user信息 git config [--local | --global | --system] user.name 'Your name' git config [--local | --global | --system] user.email 'Your email'
查看现有配置 git config --list [--local | --global | --system]
说明: -- local 本地仓库(必需在项目文件夹中配置,代表当前项目的用户信息) -- global 当前用户所有仓库(如果全部由本人变更,那可以直接设置global,不用单个设置) -- system 对登录系统的所有用户
git本地仓库认知
git本地仓库:
工作区 (working directory)
暂存区 (stage)
仓库区 (repository)
在git工作目录git add files加入暂存区,然后git commit将暂存区加入仓库。
文件重命名
git查看log
查看简洁的单行历史 git log --oneline
查看最近的4条历史 git log -n4 git log -4
查看所有分支的历史 git log --all
查看指定分支(名为BRANCH_NAME)的历史 git log BRANCH_NAME
查看图形化的版本历史 git log --graph
查看所有分支最近4条图形化的单行历史 git log --all -n4 --graph --oneline
跳转到网页版的git log帮助文档 git help --web log
分支操作
切换至已有分支 git checkout
新建分支并切换到新分支 git checkout -b
删除分支 git branch -d
分离头指针 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仓库备份到本地
参考视频
玩转 Git三剑客