导图社区 Git命令使用
收集归纳了Git一些主要命令,包含配置、仓库、修改提交、历史、标签、分支等内容。详细列出了Git在项目管理、软件开发过程中常用的功能和命令,并通过不同的颜色和层级来组织这些信息,使其更加清晰易懂。
编辑于2020-06-11 06:57:06介绍归纳 C Sharp 语音的基础重点知识。包括语言基础、字面常量、程序集、不安全代码、基础类、枚举、数组、泛型、字符串、正则表达式、委托与事件、文件、异常、多线程、异步、反射、网络、绘图、WinForm、Windows、跨平台调用等内容。思维导图示例中,有示例代码,方便学习与练习。
这份思维导图归纳了一些HTML基本的元素标签、布局、表单,以及 HTML5 API 如 WebSockets、Fetch API 等内容。CSS 主要是归纳了选择器。JavaScript 主要是包含了函数与箭头函数、this 关键字、Promise 异步对象。此外还有AJAX、jQuery 与 jQuery AJAX、JSONP 等内容。导图中的注释有很多相关的详细说明与示例代码,其中后端的测试代码是用的 PHP。希望能帮到大家!
WPF开发相关的笔记。WPF基本概念、XAML基本语法、控件与布局、Binding、依赖属性与附加属性、路由事件与附加事件、命令、资源、模板与样式、2D绘图与动画、3D绘图等内容。导图中的注释还有很多相关的详细说明与示例代码,希望能帮到大家!
社区模板帮助中心,点此进入>>
介绍归纳 C Sharp 语音的基础重点知识。包括语言基础、字面常量、程序集、不安全代码、基础类、枚举、数组、泛型、字符串、正则表达式、委托与事件、文件、异常、多线程、异步、反射、网络、绘图、WinForm、Windows、跨平台调用等内容。思维导图示例中,有示例代码,方便学习与练习。
这份思维导图归纳了一些HTML基本的元素标签、布局、表单,以及 HTML5 API 如 WebSockets、Fetch API 等内容。CSS 主要是归纳了选择器。JavaScript 主要是包含了函数与箭头函数、this 关键字、Promise 异步对象。此外还有AJAX、jQuery 与 jQuery AJAX、JSONP 等内容。导图中的注释有很多相关的详细说明与示例代码,其中后端的测试代码是用的 PHP。希望能帮到大家!
WPF开发相关的笔记。WPF基本概念、XAML基本语法、控件与布局、Binding、依赖属性与附加属性、路由事件与附加事件、命令、资源、模板与样式、2D绘图与动画、3D绘图等内容。导图中的注释还有很多相关的详细说明与示例代码,希望能帮到大家!
Git命令使用
安装、配置
查看版本
git --version
配置
查看
git config --list
用户名、邮箱
设置
git config [--global] user.name "<姓名>"
有 --global 为配置全局; []:可省略内容; <>:需输入内容; "" 可由 '' 代替;
git config [--global] user.email "<邮箱>"
查看
类似设置命令,不带参数""
Git Bash命令
可执行Linux命令。
q:退出信息
k:上一行信息
j:下一行信息
ls -la:查看当前目录下的内容(包括隐藏文件)
touch <文件名>:创建文件
目录
cd <子级目录名>
cd ..
返回上级目录
D: 或 E: 等
切换盘符
命令连续执行
";"
命令按顺序从左到右依次执行, 如果某个命令执行出错了, 直接跳到下一个命令继续执行!(这个比较危险,慎用)
"&&"
短路效果,如果某个命令执行出错了, 后面的命令全部被忽略!
"||"
忽略第一个有效命令后的所有命令。 如果第一个命令就成功了,那后面的都被忽略; 如果第一个命令失败,则继续执行第二个; 如果第二个成功了,那后面的命令被忽略;以此类推..
名词
origin:默认远程版本库名
master:默认分支名
origin/master:远程默认分支名
HEAD:当前分支顶端Commit的别名,即当前分支最近的一个提交的SHA-1哈希值
参数选项
UNIX风格
-
例: -a
GNU风格
--
例: --all 因为有一些复杂的 GNU 程序,相对于UNIX风格的仅仅 26 个字母(或者算上大小写 52 个)不够使用而发展出来的。
仓库
创建
git init [目录名]
在指定目录创建仓库
若不指定目录名,将在当前目录创建仓库
git clone <远程仓库地址> [目录名]
从指定地址克隆仓库
若不指定目录名,将默认创建与远程仓库同名目录
查看状态
git status
特殊文件
自述
README.md
Markdown语法
忽略提交
.gitignore
.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。 解决方法就是先把本地缓存删除(改变成未track状态),然后再提交: git rm -r --cached . 检查忽略规则命令: git check-ignore -v <filename>
空行、'#' 开头的行,会被Git忽略
可用标准的 glob 模式匹配,它会递归地应用
glob 模式:是指 shell 所使用的简化了的正则表达式。 "[abc]" 单个匹配,匹配任何一个列在方括号中的字符 (这个例子要么匹配一个 a 或 b 或 c); "[0-9]" 范围匹配,方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(这个例子表示匹配所有 0 到 9 的数字); '?' 只匹配一个任意字符; '*' 匹配零个或多个任意字符; "**" 表示匹配任意中间目录。比如 a/**/z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等。
'/'开头防止递归
结尾'/'指定目录
在模式前加'!'取反,取消忽略
空目录保持
.gitkeep
远程仓库
给本地仓库 添加|修改 远程仓库地址
git remote <add|set-url> <远程仓库名称> <远程仓库地址>
远程仓库名称可使用默认的“origin”或自定义如"github"等。
查看
git remote [-v]
有 -v 打印详细信息
上传
git push [-u] <远程仓库名称> <本地分支名>[:<远程分支名>]
【git push】 如果当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机,这样后面就可以不加任何参数使用git push。 注意,分支推送顺序的写法是<来源地>:<目的地>,所以git pull是<远程分支>:<本地分支>,而git push是<本地分支>:<远程分支>。 【git push origin master】 上面命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。 如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支。 【git push origin :master】 # 等同于 $ git push origin --delete master 上面命令表示删除origin主机的master分支。 如果当前分支与远程分支之间存在追踪关系,则本地分支和远程分支都可以省略。 【git push origin】 上面命令表示,将当前分支推送到origin主机的对应分支。 如果当前分支只有一个追踪分支,那么主机名都可以省略。
下载
先:git fetch <远程仓库名称> [<远程分支名>[:<本地分支名>]]
(工作区文件不会更新)
取回的更新,在本地要用"远程仓库名/远程分支名"的形式读取。
再:git diff <本地分支名>
比较本地分支与刚刚从远程 fetch 下来的分支的区别
后:使用合并分支命令:git merge <远程仓库名/远程分支名>
关于git使用的一个经验就是: 不要用git pull,用git fetch和git merge代替它。 git pull的问题是它把过程的细节都隐藏了起来,以至于你不用去了解git中各种类型分支的区别和使用方法。当然,多数时候这是没问题的,但一旦代码有问题,你很难找到出错的地方。看起来git pull的用法会使你吃惊,简单看一下git的使用文档应该就能说服你。 将下载(fetch)和合并(merge)放到一个命令里的另外一个弊端是,你的本地工作目录在未经确认的情况下就会被远程分支更新。当然,除非你关闭所有的安全选项,否则git pull在你本地工作目录还不至于造成不可挽回的损失,但很多时候我们宁愿做的慢一些,也不愿意返工重来。
修改提交
工作区 -> 暂存区
git add [-f]
指定参数 -f 可强制添加。
<.>
将所有修改添加到暂存区
<文件名>
将文件添加到暂存区
<目录名>
将目录中已修改的文件添加到暂存区
git rm [--cached]
若指定 --cached ,则只移除暂存区文件,否则将移除工作区和暂存区文件。
<文件名>
移除文件
git mv <源路径> <目标路径>
移动或重命名文件(路径必须存在)
暂存区 -> 本地版本库
git commit -m "<描述>"
一般通过提交ID的前7位,即可定位提交
版本切换
git checkout <提交ID>
检出 提交ID 的版本
git checkout -
返回上个版本(即切换前的版本)
贮藏
将未完成的修改保存到栈,需要时再重新应用。工作区将恢复至上次提交。
git stash push [-a] -m "<描述>"
-a: 除了未加入管理的文件,被git忽略(ignore)的文件也会被缓存。
压入
git stash pop [stash@{名字}]
弹出
相当于 应用+移除,未指定 {名字} 则默认栈顶。
git stash apply [stash@{名字}]
应用
git stash drop [stash@{名字}]
移除
git stash list
查看贮藏列表
git stash clear
清空贮藏
历史
git log
[--all]
所有记录(忽略HEAD的位置)
[--oneline]
单行log
[--graph]
图示记录(忽略HEAD的位置)
[-p]
修改的内容
标签
添加
git tag -a <标签名> -m "<描述>" [提交ID]
给指定提交ID版本添加标签
否则给当前版本添加标签
查看
git tag
git show <标签名>
查看该标签详细信息
检出标签对应版本
git checkout <标签名>
删除
git tag -d <标签名>
分支
创建
git branch <分支名>
git checkout -b <分支名>
创建并切换至分支
查看
git branch
切换
git checkout <分支名>
合并
git merge <某分支>
合并 某分支 到 当前分支(即HEAD所指分支)
“conflict”冲突解决
手动“修改提交”
删除
git branch -<D/d> <分支名>
D:删除未合并分支
d:删除已合并分支
图示说明
区域工作
Git区域工作原理
git fetch + git merge 与 git pull 对比