目录
- 配置user信息
- 建Git仓库
- 清空暂存区
- git变更文件名
- 查看暂存区状态
- 查看历史
- 查看本地分支
- 查看所有分支(包含远程)
- 创建分支
- 基于远程分支创建本地新分支
- 查看图形化分支日志
- 图形化界面的gitk
- 切换分支
- 比较两个commit
- git 删除分支
- git 修改最新commit的message
- git diff、git diff --cached、git diff HEAD 区别
- 让暂存区恢复和head一样
- 让工作区的文件恢复和暂存区一样
- 取消暂存区部分文件的更改
- 消除最近的几次提交
- 查看不同提交的指定文件的差异
- 正确删除文件
- git stash 用法总结和注意点
- 如何将Git仓库备份到本地
- 把本地仓库同步到github
- 不同人修改了不同文件如何处理?
- 不同人修改同文件的不同区域处理
- 不同人修改同文件的同一区域处理
配置user信息
git config --global user.name 'your_name'
git config --global user.email '[email protected]'
# 也可以直接编辑工作目录下面的.git/config直接修改
vim .git/config
建Git仓库
1. 把已有的项目代码纳入Git管理
cd 项目代码所在的文件夹
git init
2. 新建的项目直接用Git管理
cd 某个文件夹
git init your_project # 会在当前路径下创建和项目名称同名的文件夹
cd your_project
清空暂存区
git reset --hard
git变更文件名
git mv 原文件名 新文件名
查看暂存区状态
git status
查看历史
git log
git history
# 简洁看下版本历史
git log --oneline
# 查看最近的2次历史
git log -n2 --oneline
查看本地分支
git branch -v
查看所有分支(包含远程)
git branch -av
创建分支
//commitid可以不指定,默认当前分支最新(commitid可以通过git log 命令获取)
git checkout -b 分支名 commitId
基于远程分支创建本地新分支
git checkout -b 本地分支名 远程分支名
查看图形化分支日志
git log --all --graph
图形化界面的gitk
gitk
切换分支
git checkout 分支名
比较两个commit
git diff 第一个commitid 第二个commitid
git 删除分支
git branch -D 分支名
git 修改最新commit的message
git commit --amend
保存退出
git diff、git diff --cached、git diff HEAD 区别
git diff # 对比工作区(未 git add)和暂存区(git add 之后)
git diff --cached # 对比暂存区(git add 之后)和版本库(git commit 之后)
git diff HEAD # 对比工作区(未 git add)和版本库(git commit 之后)
让暂存区恢复和head一样
git reset HEAD
让工作区的文件恢复和暂存区一样
git checkout -- 待恢复的文件名
取消暂存区部分文件的更改
git reset HEAD -- 路径文件名
消除最近的几次提交
git reset --hard commitId
查看不同提交的指定文件的差异
git diff 分支1 分支2 -- 文件名
git diff commitId1 commitId2 -- 文件名
正确删除文件
git rm 文件名
git stash 用法总结和注意点
git stash save "save message" # 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别
git stash list # 查看stash了哪些存储
git stash show # 显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
git stash show -p # 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p
git stash apply # 应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}
git stash pop # 命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
git stash drop stash@{$num} #丢弃stash@{$num}存储,从列表中删除这个存储
git stash clear #删除所有缓存的stash
如何将Git仓库备份到本地
# 哑协议
git clone --bare 路径 name.git
# 智能协议
git clone --bare file://路径 name.git
把本地仓库同步到github
git remote add 远程仓库名 git地址
git remote -v
git push 远程仓库名 --all
git fetch 远程仓库名
git checkout master
git merge --allow-unrelated-histories 远程仓库名/master
git push 远程仓库名 master
不同人修改了不同文件如何处理?
git fetch 远端
# git fetch github
# 执行合并远程分支
git merge 远端
git push
不同人修改同文件的不同区域处理
git fetch
git merge 远程分支
git push
不同人修改同文件的同一区域处理
git fetch
git merge 远程分支
git pull
vim 冲突文件
git commit 注释信息
git push
# 退出merge
git merge --abort
# 删除本地分支
git branch -d 分支名