1、Git简介
- Git是一款分布式代码版本管理工具,通过git能够更加高效地协同编程
- 工作中经常会忘了某个命令该怎么写,所以找个时间来对常见命令做一个归纳总结
git非常重要的4个概念
- 工作区:本地电脑存储项目的文件夹
- 暂存区:在使用git管理项目文件的时候,其本地的项目文件会多出一个.git的文件夹,将这个.git文件夹称之为版本库。其中.git文件夹中包含了两个部分,一个是暂存区(Index或者Stage),顾名思义就是暂时存放文件的地方,通常使用add命令将工作区的文件添加到暂存区里
- 本地仓库:.git文件夹里还包括git自动创建的master分支,并且将HEAD指针指向master分支。使用commit命令可以将暂存区中的文件添加到本地仓库中;
- 远程仓库:项目代码在远程git服务器上,例如github、gitlab,通常使用clone命令将远程仓库拷贝到本地仓库中,开发后推送到远程仓库中
日常开发时代码实际上放置在工作区中,也就是本地的XXX.go这些文件,通过add等这些命令将代码提交给暂存区(Index/Stage),也就意味着代码全权交给了git进行管理,之后通过commit等命令将暂存区提交给本地仓库分支上,也就是意味打了一个版本。另外,团队协作过程中自然还涉及到与远程仓库的交互
Git命令基本可以分为几大类:
- 管理配置
- 工作区和暂存区
- 暂存区和本地仓库
- 本地仓库和远程仓库
2、配置命令
1. 设置配置
- 配置用户名
git config --global user.name "your name";
复制代码
- 配置用户邮箱
git config --global user.email "youremail@github.com";
复制代码
2. 查询配置
- 当前配置
git config --list;
复制代码
- 本地配置:
git config --local --list;
复制代码
- 全局配置
git config --global --list;
复制代码
- 系统配置
git config --system --list;
复制代码
- 查询配置来源
git config --global --list --show-origin
复制代码
3. 其它
- 配置解决冲突时使用哪种差异分析工具,比如要使用vimdiff
git config --global merge.tool vimdiff;
复制代码
- 配置git命令输出为彩色的
git config --global color.ui auto;
复制代码
- 配置git使用的文本编辑器
git config --global core.editor vi;
复制代码
3、工作区
1. 初始化仓库
git init
复制代码
2. 克隆远程仓库
gti clone <url>
复制代码
3. 提交到暂存区
1. 提交工作区所有文件到暂存区
git add .
复制代码
2. 提交工作区中指定文件到暂存区
git add <file1> <file2>
复制代码
3. 提交工作区中某个文件夹中所有文件到暂存区
git add [dir];
复制代码
4. 撤销修改
1. 丢弃暂存区修改(未发版)
git reset HEAD <file>...;
复制代码
2. 丢弃工作区修改(未提交)
git checkout --<file>
复制代码
5. 删除文件
1. 删除工作区文件、并且也从暂存区删除对应文件的记录
git rm <file1> <file2>;
复制代码
2. 从暂存区中删除文件,但是工作区依然还有该文件
git rm --cached <file>;
复制代码
6. 储藏(必须add到暂存区)
1. 保存当前工作进度,将工作区和暂存区恢复到修改之前。
git stash
git stash save [message] //保存信息
复制代码
2. 查看工作进度列表
git stsah list
复制代码
3. 查看具体工作进度信息(相关文件)
git stash show stash@{num}
复制代码
4. 应用储藏,恢复工作进度到工作区
git stash apply stash@{num}
git stash pop stash@{num} //同时删除储藏
复制代码
5. 移除指定的储藏
git stash drop stash@{num}
复制代码
6. 清除全部工作进度
git stash clear
复制代码
7. 重命名文件
git mv [file-old] [file-new];
复制代码
8. 查看状态
git status
复制代码
9. 比较工作区当前文件和暂存区的文件的差异
git diff <file-name>;
复制代码
4、暂存区
1. commit 提交本地仓库
1. 提交所有更新文件(打版本)
git commit -m '消息'
复制代码
2. 修改上次提交信息
git commit --amend -m“新提交消息”
复制代码
3. 漏提交
git add missed-file // missed-file 为遗漏提交文件
git commit --amend --no-edit 表示提交消息不会更改,在 git 上仅为一次提交
复制代码
2. 查看信息
1. 比较暂存区和上一版本的异常
git diff --cached
复制代码
2. 指定文件在暂存区和本地仓库的不同
git diff <file-name> --cached
复制代码
3. 查看提交记录
git log -p
复制代码
3. 打标签
1. 列出所有标签
git tag
复制代码
2. 创建标签
git tag -a v1.0 -m 'message'
复制代码
3. 查看标签
git show v1.0
复制代码
4. 推送标签到远程仓库
git push origin v1.0
复制代码
5. 推送全部标签
git push origin --tags
复制代码
4. 分支管理
1. 创建分支
git branch <branch-name>
复制代码
2. 切换分支
git checkout <branch-name>
复制代码
3. 新建并切换到分支
git checkout -b <branch-name>
复制代码
4. 删除分支
git branch -d <branch-name>
复制代码
5. 将当前分支与指定分支进行合并
git merge <branch-name>
复制代码
6. 显示本地仓库的所有分支
git branch
git branch -a //本地+远端
git branch -r //远端
复制代码
7. 在远程分支基础上建本地分支
git checkout -b <branch-name> <remote-name>/<branch-name>
复制代码
8、删除远端分支
git push origin --delete dev
复制代码
9. 拉取分支
git pull
复制代码
10. 推送分支
git push -f origin master 强制推送
git push 推送
git push origin qdbank:qdbank//推送本地分支到远程分支
复制代码
11. 合并分支的某个文件
git checkout minProgram --patch 文件路径 //需要确认
git checkout minProgram 文件路径 //直接覆盖
复制代码
5. 版本回退
使用指定的commit的内容覆盖暂存区和工作区
回退上一版本:git reset --hard HEAD^
回退指定版本:git reset --hard commit_id
复制代码
不回改变工作区,但是会用指定的commit覆盖暂存区,之前所有暂存的内容都变为未暂存的状态
git reset –mixed
复制代码
不会改变暂存区,仅仅将commit回退到了指定的提交
git reset –soft
复制代码
撤销某次操作,此次操作之前和之后的 commit 和 history 都会保留,并且把这次撤销作为一次最新的提交
git revert HEAD
复制代码
2. 查找命令历史
git reflog
复制代码
5、本地仓库
- 查看远端库
git remote
git remote -v //展示url
git remote show origin //远端库详细信息
复制代码
- 添加远程仓库
git remote add [remote-name] [url]
复制代码
- 从远程仓库中抓取本地仓库中没有的更新
git fetch [remote-name]
复制代码
- 移除远端库
git remote rm [remote-name]
复制代码
6、忽略文件
工作中总会有些文件不允许或者不希望纳入git版本管理,同时不出现在未跟踪文件列表,这个时候我们可以创建.gitignore 的文件,列出要忽略的文件模式
# 此为注释 – 将被 Git 忽略
# 忽略所有 .exe 结尾的文件
*.exe
# 但 a.exe 除外
!a.exe
# 忽略 aaa/ 目录下的所有文件
aaa/*
# 会忽略 bbb/notes.txt 但不包括 bbb/server/arch.txt
bbb/*.txt
# 忽略 doc/ 目录下所有扩展名为 txt 的文件
bbb/**/*.txt
复制代码
7、结尾
写的不好的地方给指正,与诸君共勉之
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END