git教程和命令集合
详细教程可参考
安装
官网下载git安装包,进行安装即可;
打开cmd终端,输入 “git --version”,回车,出现git版本信息说明安装成功。
配置
进入开始菜单,打开git bash;
输入如下命令:
git config --global user.name "Your Name"
git config --global user.email "email@example.com"创建本地仓库
在git bash终端中执行如下命令:
mkdir <文件夹名称>
cd <文件夹名称>
git init
提交修改(本地仓库)
在库中添加txt.md文件,并输入内容。然后执行如下命令:
git add <文件名> // 添加进暂存区
git commit -m "创建了一个文件" // 提交到仓库
可以为某个提交打标签,在commit后执行:
git tag <tag名> //新建标签
git tag -d <tag名> //删除标签
git push origin <tag名> //推送一个标签到远程
git push origin --tags //推送所有标签到远程
git push origin :refs/tags/<tag名> //远程仓库删除一个标签
查看状态
git status // 查看所有状态,是否有修改要add或commit
git diff 或 git diff <文件名> //查看代码的具体修改差异
查看日志
git log //展示提交日志信息比较多,仅包括当前版本及之前版本的提交log,如果未来版本回退,则回退后执行该命令将仅限显示该版本及更早版本的日志信息。
git log --oneline //每次提交日志仅展示在一行内
git reflog //展示包括提交日志和回退日志在内的所有日志
版本回退
git reset --hard head ~n //回退到之前n个版本
git reset --hard <版本id的前几个字母> //回退到历史版本或未来版本
撤销本地修改
当修改内容未 git add 添加进缓存区时:
git checkout -- . 或 git checkout -- <文件名> //修改将从文件中删除
当修改内容已经提交到暂存区时:
git reset head 或 git reset head <文件名> // 修改将回退到git add之前,但相应的修改还在文件中
所有情况(无论是否加入暂存区),都可如下执行:
git reset --hard head // 文件将从文件中删除所有修改,但只能修改所有文件的修改,无法单独撤销某个指定文件
远程仓库
查看是否有密钥:
在本地用户目录(形如“C:\Users\hikadmin”),查找是否有.ssh文件夹,如果没有则创建密钥。
创建密钥(输入以下命令,一路回车即可,将产生id_rsa和id_rsa.pub两个文件):
ssh-keygen -t rsa -C "你的邮箱地址"
将密钥配置到自己的github账户:
登录github账户-》settings-》 SSH and GPG keys -》new SSH key-》设置title,拷贝id_rsa.pub至key-》Add SSH key
创建自己的github开源项目
(1)方式一
创建远程仓库 rep
创建同名本地仓库 rep,并进行本地仓库编码
本地仓库与远程仓库关联
git remote add origin https://github.com/<github账户名>/rep.git
或
git remote add origin git@github.com:<github账户名>/rep.git
删除本地仓库与远程仓库的关联
git remote rm origin
上传文件到远程仓库
前提:已经执行完 git add/ git commit命令
首次上传使用如下命令:
git push -u origin master
非首次上传使用简化命令即可:
git push
(2)方式二
github 创建远程仓库
本地执行:
git clone <git远程仓库地址>
上传文件到远程仓库
cd <clone的本地仓库名>
git add .
git commit -m '日志'
git push
查看远程库信息
git remote //查看简化信息
git remote -v //查看详细信息处理分支
查看分支列表
git branch
创建分支
git checkout/branch -b <分支名> //创建并转到新建的分支
或
git branch <分支名> //创建分支
转到分支
git checkout <分支名>
合并分支到另一个分支
如将子分支合并到master分支上:
git checkout master //首先,转到master分支
git merge <子分支名> //然后,将子分支合并到当前分支(即master分支),删除子分支后无合并历史记录
或
git checkout master
git merge --no-ff -m '日志' <子分支名> //no-ff模式,将创建一个commit记录,删除子分支,合并记 录可通过git log查看
删除子分支
git branch -d <分支名> //不存在未合并的修改时
git branch -D <分支名> //存在未合并的修改时,通过-D强制删除分支
本地分支推送到远程
git push origin <分支名>
从远程拉取一个分支到本地
git checkout -b <本地分支名> origin/<远程分支名> //建议本地和远程分支名一致
本地拉取远程分支的更新
(1)一般情况
git pull
如果报如下错误:
There is no tracking information for the current branch. Please specify which branch you want to merge with. See git-pull(1) for details.
则需要先执行:git branch --set-upstream-to=origin/<远程分支名> <本地分支名>
然后在执行:git pull
或 直接执行如下命令:
git pull orgin <远程分支名>
(2)当需要将本地分支提交到远程分支,但远程分支上有其他成员的最新提交没有同步到本地,可以使用如下命令将提交转换成一条线:
git rebase origin
或
git rebase origin/<分支名>若 rebase过程发生冲突,需要手动修复冲突,然后执行:
git add .
git rebase --continue可以随时撤销rebase,用如下命令:
git rebase --abort
有关abort解释参考如下链接: http://gitbook.liuhui998.com/4_2.html
分支冲突解决
子分支提交修改,主分支也提交修改,当合并子分支到主分支git merge时,发生冲突,解决方式:
在主分支冲突文件中,手动修改冲突内容,然后 git add/git commit,并删除子分支。
分支使用策略

git教程和命令集合的更多相关文章
- git 教程 ,常用命令
Git使用手册 http://www.cnblogs.com/lantingji/p/5942721.html git官网 https://git-scm.com/ Git的奇技淫巧 http://w ...
- git常用的命令集合
Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势. Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ git clone g ...
- Git教程(3)命令行使用git简单示例
基础 Git系统下的的文件有3种状态: 已修改(modified):已修改表示修改了文件,但还没保存到数据库中. 已暂存(staged) : 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下 ...
- git常用命令总结--廖雪峰老师Git教程命令总结
学习了廖雪峰老师的Git教程之后的命令总结,重点关于git和远程仓库的东西. 如果没有学过,这是传送门 下面这个图很重要 一.git初始化本地仓库和配置 echo "想输入到文件的内容,一般 ...
- 廖老师git教程执行"git checkout -b dev origin/dev"命令报出:fatal: Cannot update paths and switch to branch 'dev' at the same time. Did you intend to checkout 'origin/dev' which can not be resolved as commit?问题解决
在学习廖老师git教程之多人协作模块时按照老师的操作先创建了另一个目录,然后在这个目录下从GitHub上clone了 learngit目录到这个目录下,同样的执行了git branch查看分支情况,确 ...
- 【Git教程】Git教程及使用命令
Git是目前世界上最先进的分布式版本控制系统,可以自动记录和管理文件的改动,还可以团队写作编辑,也就是帮助我们对不同的版本进行控制.2008年,GitHub网站上线,为开源项目提供免费存储,迅速发 ...
- Git-学习笔记(常用命令集合)
这里引用一下百度百科里Git的内容: Git --- The stupid content tracker, 傻瓜内容跟踪器.Linus Torvalds 是这样给我们介绍 Git 的. Git 是用 ...
- git命令集合
git init # 初始化本地git仓库(创建新仓库) git config --global user.name "xxx" # 配置用户名 git config --glob ...
- git 教程2 (git常用命令解说)
<1>$ git -- help (调出git的帮助文档) <2>$ git +命令 --help (查看某个具体命令的帮助文档) <3>$ git --versi ...
随机推荐
- 最短路径问题,BFS,408方向,思路与实现分析
最短路径问题,BFS,408方向,思路与实现分析 继上回挖下的坑,不知道大家有没有认真看最小生成树呢?很简单,这回也讲讲正常难度的,看不懂就来这里看看,讲的很好~~ 最短路径问题 说起这个问题,先说个 ...
- Pytorch线性规划模型 学习笔记(一)
Pytorch线性规划模型 学习笔记(一) Pytorch视频学习资料参考:<PyTorch深度学习实践>完结合集 Pytorch搭建神经网络的四大部分 1. 准备数据 Prepare d ...
- Reactor3 中文文档(用户手册)
文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...
- ClickHouse学习系列之四【副本&分片部署说明】
背景 以前介绍过ClickHouse相关的系列文章,现在继续说明.本文开始说明ClickHouse的副本与分片,和其他数据库一样,ClickHouse也会出现单节点故障和单节点资源到达上限的情况.所以 ...
- 学会使用Python的threading模块、掌握并发编程基础
threading模块 Python中提供了threading模块来实现线程并发编程,官方文档如下: 官方文档 添加子线程 实例化Thread类 使用该方式新增子线程任务是比较常见的,也是推荐使用的. ...
- C#获取字符串字符的位数(区分中文和英文长度)
请看以下代码 1 private static int GetStrLength(string str) 2 { 3 if (string.IsNullOrEmpty(str)) return 0; ...
- 即时通信之 SignalR
即时通信在日常的web开发场景中经常使用,本篇主要回顾一下SignalR的实现原理和通过例子说明如何在.NET Core 中使用. SingnalR 应用 需要从服务器进行高频更新的应用程序.例如游戏 ...
- P2P技术(2)——NAT穿透
P2P可以是一种通信模式.一种逻辑网络模型.一种技术.甚至一种理念.在P2P网络中,所有通信节点的地位都是对等的,每个节点都扮演着客户机和服务器双重角色,节点之间通过直接通信实现文件信息.处理器运算能 ...
- JVM到底是什么呢
在我们运行和调试Java程序的时候,经常会提到一个JVM的概念.那JVM到底是什么呢? JVM是Java程序的运行环境,它同时也是一个操作系统的一个应用程序.一个进程,因此他也有他自己的运行生命周期, ...
- Gym 100283F Bakkar In The Army
数学公式: n^2的前n项和n(n+1)(2*n+1)/6,用二分进行查找: 算出层数后继续二分查找位于这一层的哪一位,也可以推出相应公式 #include <iostream> #inc ...