创建版本库:
配置:
- 查看配置:
git config --list
- 编辑/删除配置:
git config --global --edit
- 基本配置:
# 设置提交者名称 git config --global user.name "admin" # 设置提交者邮箱 git config --global user.email "admin@test.com" # 保存密码(全局) git config --global credential.helper store # 配置仓库的用户名和密码(可以免密 push / pull) git config --global url.http://username:password@xxx.com/.insteadof http://xxx.com/ # 高亮显示关键词 git config --global color.ui true # 设置命令别名(例:使用 git co 代替 git checkout) git config --global alias.co checkout # mergetool 相关配置 git config --global merge.tool vimdiff git config --global merge.conflictstyle diff3 git config --global mergetool.prompt false
- 设置忽略文件(.gitignore):
*.map /node-modules/
- 查看配置:
将文件改动到
暂存区
:- 添加:
git add readme.md git add .
- 删除:
# 保留原文件 git rm --cached readme.md # 删除原文件 git rm readme.md # 删除文件夹 git rm -r node-modules
- 重命名:
git mv readme.md readme.md.back
- 添加:
提交改动到
本地仓库
:git commit -m 'message'
分支管理:
- 查看分支:
# 查看本地分支 git branch # 查看远程分支 git branch -r # 查看本地和远程分支的对应关系 git branch -vv
- 新建分支:
# 以当前本地分支为模板,创建新分支 git checkout -b dev # 将远程分支拉取到本地 git checkout -b dev origin/dev
- 切换分支:
git checkout master
- 设置本地仓库与远程仓库分支的映射关系(将远程 dev分支 映射到本地 dev分支):
git branch --set-upstream-to=origin/dev dev
- 合并分支:
# 合并指定分支到当前分支 git merge dev # 合并某个提交 git cherry-pick 标签/版本号 # 取消合并 git merge --abort
- 删除分支:
# 删除本地分支 git branch -d dev # 删除远程分支 git push origin --delete dev
- 查看分支:
标签管理:
# 列出所有标签 git tag # 在当前版本号新建标签 git tag v1.0 # 在指定版本号新建标签 git tag v1.0 版本号 # 删除本地标签 git tag -d v1.0 # 删除远程标签 git push origin :refs/tags/v1.0 # 查看标签修改信息 git show v1.0 # 提交指定标签到远程仓库 git push origin v1.0 # 提交所有标签到远程仓库 git push origin --tags # 以某个标签为基准点,新建一个分支 git checkout -b dev v1.0
查看信息:
# 显示本地有修改的文件 git status # 查看日志(简短日志) git reflog # 查看远程日志 git reflog origin/dev # 查看日志(单行显示) git log --pretty=oneline # 查看日志(详细信息) git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit # 在日志中搜索指定内容 git log --pretty=oneline --grep 关键词 # 查看某个文件的日志 git log --pretty=oneline --follow -p readme.md # 统计用户的提交次数 git shortlog -sn # 查看某个文件被谁修改过 git blame readme.md # 查看当前有哪些修改 git diff # 查看两个分支之间的差异 git diff master dev # 统计有哪些修改 git diff --shortstat # 查看某个版本号的修改内容 git show 版本号 # 查看某个版本号修改的文件 git show --name-only 版本号
远程同步:
# 新建本地仓库 git init # 添加远程仓库,并取名叫 origin git remote add origin http://xxx/xx.git 或 git remote add origin http://username:password@xxx/xx.git # 添加修改 git add . # 提交修改 git commit -m "xx" # 推送到远程仓库 git push -u origin "master" # 以当前本地分支为模板,创建新分支 git checkout -b dev # 提交当前分支到远程分支 git push origin dev # 推送所有分支到远程仓库 git push origin --all # 设置本地仓库与远程仓库分支的映射关系(将远程 dev分支 映射到本地 dev分支) git branch --set-upstream-to=origin/dev dev # 显示所有远程仓库 git remote -v # 删除远程仓库 git remote rm origin # 拉取远程分支的变动到当前分支 git pull origin dev
撤销操作:
# 撤销某个文件的修改(未 git add 之前) git checkout readme.md # 撤销所有文件的修改(未 git add 之前) git checkout . # 恢复某个文件(git add 之后,git commit 之前。注意:不带 --hard 参数) git reset readme.md # 恢复所有文件(git add 之后,git commit 之前) git reset --hard (推送到远程:git push -f) # 以指定版本号为基准点,恢复所有文件 git reset --hard 版本号 # 回滚某次提交的内容 git revert 版本号 # 暂存文件 git stash save "xx" # 查看暂存列表 git stash list # 从暂存区恢复并删除指定暂存 git stash pop stash@{0} # 从暂存区恢复并删除所有暂存 git stash pop
使用 mergetool 处理冲突(vimdiff 版):
- 配置:
# 使用 vimdiff 作为默认的合并工具 git config --global merge.tool vimdiff # 合并时显示出冲突分支的共同祖先 git config --global merge.conflictstyle diff3 # 禁用 vimdiff 的提示 git config --global mergetool.prompt false
- 使用:
- git 命令:
git mergetool
- vim 切换窗口:
Ctrl + w
- mergetool 命令:
# 使用远程版(图右) :diffg RE # 使用原始版(图中) :diffg BA # 使用本地版(图左) :diffg LO
- 保存退出:
:xa
- git 命令:
- 配置:
忽略文件语法:
- 创建
.gitignore
- 注释符
#
- 忽略文件:
# 忽略所有以 db 结尾的文件 *.db # 忽略当前文件夹中以 db 结尾的文件 /*.db # 忽略当前目录 tmp 文件夹中所有以 db 结尾的文件 /tmp/*.db
- 忽略文件夹:
# 忽略当前目录中 cache/template 文件夹 /cache/template/
- 使 .gitignore 生效(删除已提交的版本库中的文件/文件夹):
# 删除文件 git rm --cached tmp/*.db # 删除文件夹 git rm -r --cached tmp
- 创建
文档更新时间: 2024-04-20 10:57 作者:lee