Git 使用大全(持续更新)
2020/3/21 8:01:20
本文主要是介绍Git 使用大全(持续更新),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Git 使用大全
用户配置
配置个人的用户名称和电子邮箱地址:
# 系统设置 $ git config --system user.name "userName" $ git config --system user.email "user@email.com" # 全局设置(当前用户) $ git config --global user.name "userName" $ git config --global user.email "user@email.com" # 仓库设置(当前仓库) $ git config --local user.name "userName" $ git config --local user.email "user@email.com"
文本编辑器
# 设置一个叫 emacs 的默认文本编辑器 $ git config --global core.editor emacs
差异分析工具
# 设置一个叫 vimdiff 的默认差异化分析工具 $ git config --global merge.tool vimdiff
查看配置信息
# 全部 $ git config --list # 局部 $ git config --local --list # 查看某个变量 $ git config user.name
基本概念
- 工作区:就是项目工程的目录
- 暂存区:英文叫stage, 或index。一般存放在 “.git目录下” 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)
- 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库
Git 创建仓库
# 初始化,该命令会在当前文件夹生成一个 .git 目录 $ git init # 指定一个目录作为初始化 $ git init newTest
添加修改或增加的内容到本地版本库
$ git add *.c $ git add README $ git commit -m "第一次提交"
克隆
# 参数说明:repo:Git 仓库 directory:本地目录 $ git clone <repo> $ git clone <repo> <directory>
git status
# git status 以查看在你上次提交之后是否有修改 $ git status # -s 参数,以获得简短的结果输出 $ git status -s
git diff
# 尚未缓存的改动,多个文件比较 $ git diff # 查看已缓存的改动 $ git diff --cached # 查看已缓存的与未缓存的所有改动 $ git diff HEAD # 显示摘要而非整个 diff $ git diff --stat # 将工作区中的文件和暂存区文件进行比较 $ git diff <文件名> # 将工作区的文件和本地库历史版本进行比较 $ git diff <本地库版本><文件名>
git commit
$ git commit -m '第一次版本提交'
git reset HEAD
# git reset HEAD** 命令用于取消已缓存的内容 $ git reset HEAD hello.php
删除
# 正常移除 $ git rm <file> # 如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f $ git rm -f <file> # 文件从暂存区域移除 $ git rm --cached <file>
git mv
移动或重命名文件
Git 分支管理
# 创建分支 $ git branch <branch name> # 切换分支 $ git checkout <branch name> # 合并到当前分支 $ git merge <branch name> # 删除分支 $ git branch -d <branch name> # 查看分支 $ git branch -v or git branch
合并冲突
# 解决完冲突后,执行以下命令 $ git add . $ git commit
Git 查看提交历史
# 最完整显示 $ git log # 简洁显示历史 $ git log --oneline # 开启了拓扑图 $ git log --graph # 逆向显示日志 $ git log --reverse --oneline # 查找指定用户日志, -5 是显示 5 条记录的意思 $ git log --author=<name> --oneline -5 # 指定日期查询, --no-merges 选项以隐藏合并提交,可以执行几个选项:--since 和 --before,但是你也可以用 --until 和 --after $ git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges # 以漂亮的格式显示历史提交信息 $ git log --pretty=oneline # 多了指针显示 $ git reflog
Git 标签
# 带注解的标签 $ git tag -a v1.0.0 # 查看标签 $ git tag # 指定标签信息命令 $ git tag -a <tagname> -m "标签" # PGP签名标签命令 $ git tag -s <tagname> -m "标签"
Git 远程仓库
# 要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用 $ git remote add <shortname> <url> # 查看当前的远程库 $ git remote # 执行时加上 -v 参数,你还可以看到每个别名的实际链接地址 $ git remote -v
提取远程仓库
# 从远程仓库下载新分支与数据,命令执行完后需要执行git merge 远程分支到你所在的分支 $ git fetch # 从远端仓库提取数据并尝试合并到当前分支 $ git merge
推送到远程仓库
$ git push <alias> <branch>
删除远程仓库
$ git remote rm [别名]
版本回退
$ git reset --hard <局部索引值> # 只能往后退 ^ 向后退一个版本,^ 有几个就退几个版本 $ git reset --hard HEAD $ git reset --hard HEAD^ $ git reset --hard HEAD^^ $ git reset --hard HEAD^^^ # 后退一个版本 $ git reset --hard HEAD~1 # 后退两个版本 $ git reset --hard HEAD~2 # reset 命令的三个参数对比 # --soft 仅仅在本地库移动 HEAD 指针 # --mixed 在本地库移动 HEAD 指针,重置暂存区 # --Hard 在本地库移动 HEAD 指针,重置暂存区,重置工作区
本地库与远程库交互
# 查询有哪些远程库 $ git remote -v # 添加远程仓库和别名 $ git remote add origin <远程仓库地址> # 推送本地库到远程库 $ git push origin master # 克隆 $ git clone <远程仓库地址> # 抓取远程仓库 origin 地址别名 master 远程仓库主要分支 $ git fetch origin master # 切换远程仓库的 master $ git checkout 'origin/master' # 远程的 master 合并到本地的 master $ git merge 'origin/master' # git pull == git fetch + git merge # 冲突解决
SSH
$ ssh-keygen -t ras -C <用户名>
Git 工作流
点击查看更多内容
这篇关于Git 使用大全(持续更新)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-19JAVA 企业级项目入门:从零开始的实战指南
- 2024-09-19Java 企业级项目入门:从零基础到实战的进阶之路
- 2024-09-19Java 企业级项目入门:从零开始的实战指南
- 2024-09-18Java OA系统入门:从基础到实践
- 2024-09-18Java OA系统入门:从零开始的简单教程
- 2024-09-18JAVA OA系统入门:从零开始的实战指南
- 2024-09-18Java Web项目入门:快速搭建你的第一个Web应用
- 2024-09-18JAVA web项目入门:从零基础到实战的小白指南
- 2024-09-18Java Web项目入门:从零开始的轻量级教程
- 2024-09-18Java Web项目入门:快速搭建与基础实践