- Git使用的最新配置
git config --global user.name ''
git conifg --global user.email ''
## 查看全局git配置
git config --list --global
## 查看系统git配置
git config --list --system
## 查看全局git 本地配置
git config --list --local
- 单个仓库设置用户名和邮箱
## cd 本地仓库路径
git config --local user.name 'lufei'
git config --local user.email 'carlxuchao@gmail.com'
git config --list --local
-
给文件重命名
git rm readme git add readme.md git commit --------- **git mv readme readme.md** -
log
git log --oneline ## 查看2此提交 git log -- n2 ## --all 可以查看所有分支提交 git log --all --graph ## 可以组合 git log --oneline --all --graph ## 查看分支 git branch -v // 基于 ab7a56bfbd74393ded2a172f10b6af0b3ef27e27 提交创建 temp 分支 git checkout -b temp ab7a56bfbd74393ded2a172f10b6af0b3ef27e27 -
图形界面的工具使用
## 切换分支 git checkout master ## 查看当前是那个分支 cat .git/HEAD ## 查看本地仓库配置信息 cat .git/config ## 查看commit对象 git cat-file -t xxx ## 查看树tree git cat-file -p xxx .git目录下文件 - HEAD - config - refs - objects -
commit, tree , blob三者之间的关系
- blob只根据内容, 不区分文件
## 查找
find .git/objects -type f
## 查看commit对象
git cat-file -t xxx
## 查看树tree
git cat-file -p xxx
- 分离头指针情况下的注意事项
git checkout commitId → detached HEAD
git commit -am 'xxx' 之间提交commit
git branch branch_name commitId 创建分支
将分离头指针跟某个分支绑定在一起, 否则切换分支的时候回丢失到之后的commit
## 创建新分支并切换过去
git checkout -b branch_name_xx branchName
## 两次commit的比较
git diff commitId1 comitId2
git diff HEAD HEAD^
- 怎么删除不需要的分支
## 查看所有分支
git branch -av
## 删除分支
git branch -d 分支名
## 强删
git branch -D 分支名
- 怎么修改最新commit的message信息
git commit --amend
- 怎么修改老旧的commit的message信息
git rebase -i 父commitId
vim 修改 pick 为 reword, 并修改提交信息
- 怎么把多个连续的commit合成一个
git rebase -i 父commitId
## vim 修改需要合并的commit的位置, 并改pick为s
git rebase --continue
- 怎么比较暂存区和HEAD所含文件的差异
git diff --cached
- 怎么比较工作区和暂存区的差异
## 比较所有文件
git diff
## 比较当文件的区别
git diff --file_name
- 如何让暂缓区恢复和HEAD一样
git reset HEAD
- 如何让工作区的文件恢复和暂缓区一样
git checkout -- 文件名
- 怎么取消暂缓区部分文件的更改
git reset HEAD --文件名
- 消除最近的几次提交
git reset --hard commitId
HEAD变化, 工作区和暂存区都回退
- 看看不同提交的指定文件差异
git diff 分支1 分支2
git diff 分支1 分支2 --文件名
git diff commit1 commit2 --文件名
- 正确删除文件的方法
老方法:
工作区 rm file
git rm file
----
直接使用
git rm file
- 开发中临时加塞了紧急任务怎么处理
git stash
git stash list
git stash apply
git stash pop
- 如何指定不需要git管理的文件
配置 .gitignore
-
git的备份
-
把本地仓库同步到GitHub (待补充)
-
git上怎么快速淘到自己敢心情的项目
- xxx in:readme 在readme中查找
- stars:>3000 根据star数量搜索
- '关键字' filename: gitlab-ci 搜code
-
高效的git rebase 方式
git config --global rerere.enabled true
git checkout shanghai
git merge master
to do resolve conflict
git add .
git commit -am'xxx'
git log
git reset --hard HEAD~1
git rebase master