详细教程可参考

git community book中文版

git教程(廖雪峰)

  1. 安装

    • 官网下载git安装包,进行安装即可;

    • 打开cmd终端,输入 “git --version”,回车,出现git版本信息说明安装成功。

  2. 配置

    进入开始菜单,打开git bash;

    输入如下命令:

    git config --global user.name "Your Name"
    git config --global user.email "email@example.com"
  3. 创建本地仓库

    在git bash终端中执行如下命令:

    • mkdir <文件夹名称>

    • cd <文件夹名称>

    • git init

  4. 提交修改(本地仓库)

    在库中添加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名> //远程仓库删除一个标签

  5. 查看状态

    • git status // 查看所有状态,是否有修改要add或commit

    • git diff 或 git diff <文件名> //查看代码的具体修改差异

  6. 查看日志

    • git log //展示提交日志信息比较多,仅包括当前版本及之前版本的提交log,如果未来版本回退,则回退后执行该命令将仅限显示该版本及更早版本的日志信息。

    • git log --oneline //每次提交日志仅展示在一行内

    • git reflog //展示包括提交日志和回退日志在内的所有日志

  7. 版本回退

    • git reset --hard head ~n //回退到之前n个版本

    • git reset --hard <版本id的前几个字母> //回退到历史版本或未来版本

  8. 撤销本地修改

    • 当修改内容未 git add 添加进缓存区时:

    git checkout -- . 或 git checkout -- <文件名> //修改将从文件中删除

    • 当修改内容已经提交到暂存区时:

    git reset head 或 git reset head <文件名> // 修改将回退到git add之前,但相应的修改还在文件中

    • 所有情况(无论是否加入暂存区),都可如下执行:

    git reset --hard head // 文件将从文件中删除所有修改,但只能修改所有文件的修改,无法单独撤销某个指定文件

  9. 远程仓库

    • 查看是否有密钥:

      在本地用户目录(形如“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   //查看详细信息
  10. 处理分支

    • 查看分支列表

      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

  11. 分支冲突解决

    子分支提交修改,主分支也提交修改,当合并子分支到主分支git merge时,发生冲突,解决方式:

    在主分支冲突文件中,手动修改冲突内容,然后 git add/git commit,并删除子分支。

  12. 分支使用策略

git教程和命令集合的更多相关文章

  1. git 教程 ,常用命令

    Git使用手册 http://www.cnblogs.com/lantingji/p/5942721.html git官网 https://git-scm.com/ Git的奇技淫巧 http://w ...

  2. git常用的命令集合

    Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势. Git常用操作命令: 1) 远程仓库相关命令 检出仓库:$ git clone g ...

  3. Git教程(3)命令行使用git简单示例

    基础 Git系统下的的文件有3种状态: 已修改(modified):已修改表示修改了文件,但还没保存到数据库中. 已暂存(staged) : 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下 ...

  4. git常用命令总结--廖雪峰老师Git教程命令总结

    学习了廖雪峰老师的Git教程之后的命令总结,重点关于git和远程仓库的东西. 如果没有学过,这是传送门 下面这个图很重要 一.git初始化本地仓库和配置 echo "想输入到文件的内容,一般 ...

  5. 廖老师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查看分支情况,确 ...

  6. 【Git教程】Git教程及使用命令

      Git是目前世界上最先进的分布式版本控制系统,可以自动记录和管理文件的改动,还可以团队写作编辑,也就是帮助我们对不同的版本进行控制.2008年,GitHub网站上线,为开源项目提供免费存储,迅速发 ...

  7. Git-学习笔记(常用命令集合)

    这里引用一下百度百科里Git的内容: Git --- The stupid content tracker, 傻瓜内容跟踪器.Linus Torvalds 是这样给我们介绍 Git 的. Git 是用 ...

  8. git命令集合

    git init # 初始化本地git仓库(创建新仓库) git config --global user.name "xxx" # 配置用户名 git config --glob ...

  9. git 教程2 (git常用命令解说)

    <1>$ git -- help (调出git的帮助文档) <2>$ git +命令 --help (查看某个具体命令的帮助文档) <3>$ git --versi ...

随机推荐

  1. mybatis——一级缓存、二级缓存

    一.Mybatis缓存 ● MyBatis包含一个非常强大的查询緩存特性,它可以非常方便地定制和配置缓存.绶存可以极大的提升查询效率. ● MyBatis系统中默认定义了两级缓存:一级缓存和二级缓存 ...

  2. Spring Boot WebFlux-08——WebFlux 中 WebSocket 实现通信

    第08课:WebFlux 中 WebSocket 实现通信 前言 WebFlux 该模块中包含了对反应式 HTTP.服务器推送事件和 WebSocket 的客户端和服务器端的支持.这里我们简单实践下 ...

  3. Python 机器学习实战 —— 监督学习(下)

    前言 近年来AI人工智能成为社会发展趋势,在IT行业引起一波热潮,有关机器学习.深度学习.神经网络等文章多不胜数.从智能家居.自动驾驶.无人机.智能机器人到人造卫星.安防军备,无论是国家级军事设备还是 ...

  4. 【学习】自定义view

    自定义控件其实很简单1/2   Canvas的使用 自定义控件其实很简单1/3   Shader与画布的旋转 自定义控件其实很简单2/3   view的测量 自定义控件其实很简单1/4   FontM ...

  5. 6.11、制作windos虚拟机

    1.下载kvm支持windows系统的驱动程序: cd /tmp/ wget https://fedorapeople.org/groups/virt/virtio-win/direct-downlo ...

  6. 使用 .net WEBAPI 返回 application/json类型导致 IE8 提示下载

    1, 场景介绍 项目使用了 jquery.form.js这个插件,用 ajax的方式提交 form 表单里面的信息.因为需要使用 ajax获取到返回信息.数据录入使用的是 .net mvc方式的 we ...

  7. layui table 表格上添加日期控件

    方法一: var tableInit = table.render({ elem: '#tbtxrz' , method: 'post' , data: jsonData , height: &quo ...

  8. Defense:MS08067漏洞攻防渗透实验

    实验环境 Windows XP SP3 IP:172.16.211.129 百度网盘:https://pan.baidu.com/s/1dbBGdkM6aDzXcKajV47zBw     靶机环境 ...

  9. 在CentOS7上面部署项目,报出找不到表的错误

    最近在linux服务器上面部署一个javaweb的项目,报出一些奇怪的错误,拉到报错信息的最下面显示mysql数据库的某个表找不到,可以在windows上面是能正常运行的. 最后发现原来是linux服 ...

  10. 剑指offer 37-42

    37. 输入一棵二叉树,判断该二叉树是否是平衡二叉树. 思路: 1.平衡二叉树的定义为,当为空树或左右子树高度小于等于1,同时左右子树都要为平衡二叉树. 2.先分别求出左右子树的高度,比较高度差,如果 ...