Git使用大全
前言
内容来自于整理的Xmind格式转文档,内容捎乱,常用指令基本都有,后续不断完善
Xmind图:
环境配置
当安装完Git首先要做就是设置用户名称和E-mail地址
设置用户信息
- git config --global user.name “zsl”
- git config --global user.email “zsl975@xx.xx” #并不会校验邮箱是否合法
查看配置信息
- git config --list
- git config user.name
通过上面的命令设置的信息会被保存在~/.git目录 config 文件中
获得Git仓库
- 本地初始化:git init
- 远程仓库克隆:git clone https://github.com/xx/xx
Git命令
获取Git仓库
- 本地初始化:git init
- 远程仓库克隆:git clone https://github.com/xx/xx
工作目录、暂存区和版本库
版本库:
git,中存储了配置信息、日志信息和文件版本信息等
工作目录(工作区):
包含.git文件夹的目录就是工作目录,主要用于存放开发的代码
暂存区:
.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage
暂存区是一个临时保存修改文件的地方
远程仓库:
如github、gitee
Git 工作目录下文件的两种状态
- untracked 未跟踪 (未被纳入版本控制)
- tracked 已跟踪 (被纳入版本控制)
- Unmodified 未修改状态
- Modified 已修改状态
- Staged 已暂存状态
本地仓库操作
- git status 查看仓库状态 -s 更整洁
- git add [文件名]|[文件夹名]|[*.java]|[.]|[-A]|[–all] 添加文件到暂存区
- git reset
- 将暂存区文件移除:HEAD
- 只重置本地仓库:-soft [版本号]
- 重置本地仓库和暂存区:–mixed [版本号]
- 重置本地仓库和暂存区和工作区:–hard [版本号]
- git commit 将暂存区文件提交到本地仓库
- -a 将已跟踪的文件提交到本地仓库
- -m "init hello.txt“ 附带提交log信息
- –amend -m “xx” 修改log信息
- git rm 删除文件(工作区文件) 直接commit提交
- 将文件添加至忽略列表:固定文件名称.gitignore
.gitignore
# no .a files
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
/TODO
# ignore all files in the build/ directory
build/
# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
# ignore all .pdf files in the doc/ directory
doc/**/*.pdf
- git log 查看日志记录
- 简略版(一行显示):–oneline
- git diff 不带参数 比较工作区和暂存区的不同
- –cached 比较暂存区和本地仓库的不同
- HEAD 比较 工作区和本地仓库不同
- 版本号 不同版本号比较
远程仓库操作
- git remote 查看远程仓库 -v 详细查看 show origin
- git remote add 添加远程仓库
- git clone <branck-name可选>[remote] 从远程仓库克隆
- git clone -b 分支名 https://xxx.git 只克隆单分支(非master)
- git remote rm 移除(本地)无效的远程仓库
- git fetch mer 从远程仓库中抓取,不会自动merge
- git merge origin/master
- git pull [remote-name] [branch-name] 从远程仓库中拉取,会自动merge
- git checkout -b [branch-name] [remote-name/branch-name] 从远程仓库中拉取,并创建
- 本地仓库存在文件报错时 git pull --allow-unrelated-histories
- git push [remote-name] [branch-name] 推送到远程仓库
- git push origin -d [branch-name] 删除远程仓库分支
Git分支
查看分支:
- git branch # 列出所有本地分支
- git branch -r # 列出所有远程分支
- git branch -a # 列出所有本地分支和远程分支
创建分支:
- git branch [branchname] 创建分支,会以当前分支为模板创建新分支(copy)
切换分支:
- git checkout [branch] 进入分支
- git checkout -b [branch] 创建并进入
- git checkout -b template origin/template 作用是checkout远程仓库origin的分支template,在本地起名为template分支,并切换到本地的template分支
推送至远程仓库分支:
- git push [remote-name] [branch-name] 推送到远程仓库
合并分支:
- git merge [branch-name] 在当前下分支合并其它分支
删除分支:
- git branch -d 删除本地仓库分支//-D强制删除
注意事项:1.不能删除当前分支2.不能删除主分支
- git push origin -d [branch-name] 删除远程仓库分支
Git 标签
列出已有的标签:
- git tag # 列出所用tag
其它操作:
- git show [tag] # 查看tag信息
- git tag 创建新标签
- git push [remote] [tag] 将标签推送至远程仓库
- git checkout -b [branch] [tag] 创建新的分支与标签 检出标签
删除标签:
- git tag -d [tag] # 删除本地tag
- git push [remote-name] :refs/tags/[tag] # 删除远程tag
使用场景:
版本(version):v1.0.0、 v2.0.0
使用 SSH 协议传输数据
Git 支持的传输协议:
- 本地协议(Local)
- HTTPS 协议
- SSH(Secure Shell 安全外壳协议)协议
- Git 协议
配置 SSH 协议:
- ssh-keygen -t rsa 生成公钥和私钥,执行完成后在window本地用)户.ssh目录C:\Users\用户名.ssh下面生成私钥(id_rsa)和公钥(id_rsa.pub)
- 复制公钥文件内容至码云服务器