版本控制-git

基础知识与常用命令

|------------------|---|---|
| GIT |||
| 认识git | C语言写的分布版本控制系统 ||
| 安装 | sudo apt-get install git ||
| 配置 | git config --global user.name "I" ||
| 初始化版本库 | git init ||
| 常用命令 |||
| 查看状态 | git status ||
| 查看修改 | git diff ||
| 将修改添加到暂存区 | git add XX ||
| 将暂存区内容提交至版本库 | git commit -m "message" ||
| 查看提交日志 | git log 、git reflog->记录你操作过的命令 ||
| 版本回退 | git reset HEAD^ ||
| 丢弃修改 | git checkout -- file 丢弃工作区的修改 ||
| 删除 | git rm file 想要恢复用checkout ||
| 添加远程仓库 | git remote add origin github...... 关联远程仓库 ||
| 推送修改 | git push origin 'brach' ||
| 查看远程仓库 | git remote -v ||
| 克隆仓库 | git clone 'url' 支持https/ssh ||
| 删除远程 | git remote -v 解除远程绑定 ||
| 分支与标签 |||
| 创建并切换分支 | git checkout -b <name> /git swithc -c <name>, 也可分步执行 ||
| 查看/删除分支 | git branch 当前工作分支*标记 git branch -d <name> -D 强删 ||
| 合并分支 | git checkout master git merge dev 将dev合并到master ||
| 合并冲突 | 以<<<< ====== >>>> 标记出不同分支的修改 ||
| stash暂存 | 暂存->git stash 恢复-> git stash appy 删除暂存->git stash drop。 或者 git stash pop ||
| 获取远程最新 | git pull ||
| 合并提交 | git rebase ||
| 新建标签 | git tag <name> 默认HEAD,也可指定commit id ||
| 指定标签信息 | git tag -a <name> -m "message" ||
| 查看标签 | git tag ||
| 删除标签 | git tag -d <name> 再推送git push origin:refs/tags/<tag> 删除远程标签 ||
| 推送本地标签 | git push origin <name> / --tags(推送所有未推送过的标签) ||
| 自定义git |||
| 改显示颜色 | git config --global color.ui true ||
| 忽略特殊文件 | 编写 .gitignore ||
| 别名 | git status <=> git config --global alias.st status ||

更多细节

1、git reset

|-----------|---|---|
| 版本回退参数 git reset --hard/soft/mixed |||
| hard | 后面跟commitID回退指定版本 ||
| soft | 回退指定版本未提交状态 git add但没有git commit ||
| mixed | 回到上次已修改没有添加修改, 没有git add 和git commit ||

2、git log

|-----------|---|---|
| 简洁模式 | git log --oneline 每个提交显示一行包括commit id和提交信息 ||
| 图形视图 | --graph 以图形方式展示分支和合并历史 ||
| 格式化输出 | --pretty=format:"format" ||
| 搜索 | --grep=<pattern> ||

3、工作区、暂存区(index)、版本库

工作区 :你项目所在的文件夹目录。
暂存区 :用于存储工作区中添加上来的变更(新增、修改、删除)的文件的地方。操作时,使用`git add .`会将本地所有新增、变更、删除过的文件的情况存入暂存区中。
版本库:工作区有一个隐藏目录`.git`,这个不算工作区,而是Git的版本库。版本库里存了很多东西,其中最重要的是称为`stage`(或者叫`index`)的暂存区,还有Git为我们自动创建的第一个分支`master`,以及指向`master`的一个指针叫`HEAD`。

4、杂项

--global 设置后是本地环境所有git 仓库, 没有加这个参数就是只对本仓库有效, git config --global --list查看全局所有配置

git是跟踪修改不是跟踪文件的。git pull 从远程仓库更新并自动合并到当前分支。 git fetch就是获取更新但是不自动合并。

git中的文件四种状态: 未跟踪、已暂存、已修改、已提交

相关推荐
洛小豆3 小时前
Git打标签仓库看不到?她说:豆子,你又忘了加 --tags!
git·后端·github
好奇的菜鸟6 小时前
理解 Git 命令 `git reset --hard origin/pre`:版本回退的“利刃”与使用禁忌
大数据·git
春生野草6 小时前
git的使用
git
今天头发还在吗6 小时前
解决 Git 推送冲突:使用 Rebase 整合远程更改
大数据·git·elasticsearch
蓝色空白的博客8 小时前
Git代码下拉更新推送操作用法整理
git
风也温柔☆10 小时前
IDEA/WebStorm 切换分支(超简单)
git·intellij-idea·webstorm·切换分支·checkout
Jammingpro21 小时前
【Git版本控制】Git初识、安装、仓库初始化与仓库配置(含git init、git config与配置无法取消问题)
java·git·elasticsearch
shark1 天前
无需放弃变更、关闭占用程序!用暂存区和 git底层命令实现 Git 变更备份
git·shell·自动化运维
_poplar_1 天前
15 【C++11 新特性】统一的列表初始化和变量类型推导
开发语言·数据结构·c++·git·算法
北城笑笑1 天前
Git 10 ,使用 SSH 提升 Git 操作速度实践指南( Git 拉取推送响应慢 )
前端·git·ssh