--------------------git--------------------
1、简介
    1、Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。[1]  Git的读音为/gɪt/。
    2、Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。[2]  Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
 
 
2、特点
    1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
 
    2、在自己的机器上根据不同的开发目的,创建分支,修改代码。
 
    3、在单机上自己创建的分支上提交代码。
 
    4、在单机上合并分支。
 
    5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
 
    6、生成补丁(patch),把补丁发送给主开发者。
 
    7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
 
    8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
 
--------------------git与SVN的对比--------------------
1、git是分布式的,SVN不是。
 
 
2、git把内容按元数据方式存储,而SVN是按文件。
 
 
3、git分支和SVN的分支不同。
 
 
4、git的内容完整性要优于SVN。
 
 
--------------------git原理分析--------------------
1、git主要分为
    1、工作区:Workspace
 
    2、暂存区:Index
 
    3、本地仓库:Repository
 
    4、远程仓库:Remote
 
 
2、部分操作
    1、git add:工作区提交到暂存区。
 
    2、git commit:暂存区提交到本地仓库。
 
    3、git push:本地仓库提交到远程仓库。
 
    4、git fetch:远程仓库提取到本地仓库。
 
    5、git checkout:本地仓库提取到工作区。
 
    6、git pull:远程仓库提取到工作区。
 
 
--------------------git常用命令--------------------
1、新建代码仓库
    1、git init:在当前目录新建一个Git代码库。
 
    2、git init [project-name]:新建一个目录,将其初始化为Git代码库。
 
    3、git clone [url]:下载一个项目和它的整个代码历史。
 
 
2、配置
    1、Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。
 
    2、git config --list:显示当前的Git配置。
 
    3、git config -e [--global]:编辑Git配置文件。
 
    4、设置提交代码时的用户信息:
        1、git config [--global] user.name "[name]"
 
        2、git config [--global] user.email "[email address]"
 
 
3、增加/删除文件
    1、git add [file1] [file2] ---:添加指定文件到缓存区。
 
    2、git add [dir]:添加指定目录到暂存区,包括子目录。
 
    3、git add:添加当前目录的所有文件到暂存区。
 
    4、git rm [file1] [file2] ---:删除工作区文件,并且将这次删除放入暂存区。
 
    5、git mv [file-original] [file-renamed]:改名文件,并且将这个改名放入暂存区。
 
4、代码提交
    1、git commit -m [message]:提交暂存区到仓库区。
 
    2、git commit [file1] [file2] --- -m [message]:提交暂存区的指定文件到仓库区。
 
    3、git commit -a:提交工作区自上次commit,替代上一次提交。
 
 
    4、git commit --amend -m [message]:使用一次新的commit,替代上一次提交。
        注:如果代码没有任何新变化,则用来改写上一次commit的提交信息。
 
    5、git commit -amend [file1] [file2] ---:重做上一次commit,并包括指定文件的新变化。
 
 
5、分支
    1、git branch:列出所有本地分支
 
    2、git branch -r:列出所有远程分支
 
    3、git branch -a:列出所有本地分支和远程分支
 
    4、git branch [branch-name]:新建一个分支,但依然停留在当前分支
 
    5、git checkout -b [branch]:新建一个分支,并切换到该分支
 
    6、git branch [branch] [commit]:新建一个分支,指向指定commit
 
    7、git push origin [branch]:新建一个远程分支,本地新建然后推送
 
    8、git branch --track [branck] [remote-branch]:新建一个分支,与指定的远程分支建立追踪关系
 
    9、git checkout [branch-name]:切换到指定分支,并更新工作区
 
    10、git checkout -:切换到上一个分支
 
    11、git branch --set-upstream-to [remote-branch]:建立追踪关系,设置当前分支与指定的远程分支之间关联
 
    12、git merge [branch]:合并指定分支到当前分支
 
    13、git cherry-pick [commit]:选择一个commit,合并进当前分支
 
    14、git branch -d [branch-name]:
    删除分支
 
    15、删除远程分支
        1、git push origin --detele [branch-name]
 
        2、git branch -dr [remote/branch]
 
 
6、标签
    1、git tag:列出所有tag。
 
    2、git tag [tag]:新建一个tag在当前commit。
 
    3、git tag [tag] [commit]:新建一个tag在指定commit。
 
    4、git tag -d [tag]:删除本地tag。
 
    5、git push origin :refs/tags/[tagName]:删除远程tag。
 
    6、git show [tag]:查看tag信息。
 
    7、git push [remote] [tag]:提交指定tag。
 
    8、git push [remote] --tags:提交所有tag。
 
    9、git checkout -b [branch] [tag]新建一个分支,指向某个tag。
 
 
7、查看信息
    1、git status:显示有变更的文件。
 
    2、git log:显示当前分支的版本历史。
 
    3、git log --stat:显示commit历史,以及每次commit发送变更的文件。
 
    4、git log -S [keyword]:搜索提交历史,根据关键词。
 
    5、git log [tag] HEAD --pretty=format:%s:显示某个commit之后的所有变动,每个commit占据一行。
 
    6、git log [tag] HEAD --grep feature:显示某个commit之后的所有变动,其“提交说明”必须符合搜索条件。
 
    7、显示某个文件的版本历史,包括文件夹名
        1、git log --follow [file]
 
        2、git whatchanged [file]
 
    8、git log -p [file]:显示指定文件相关的每一次diff。
 
    9、git log -5 --pretty --oneline:显示过去5次提交。
 
    10、git shortlog -sn:显示所有提交过的用户,按提交次数排序。
 
    11、git blame [file]:显示指定文件是什么人在什么时间修改过
 
    12、git diff:显示暂存区和工作区的差异。
 
    13、git diff --cached [file]:显示暂存区和上一个commit的差异。
 
    14、git diff HEAD:显示工作区与当前分支最新commit之间的差异。
 
    15、git diff [first-branch] ...[second-branch]:显示两次提交之间的差异。
 
    16、git show [commit]:显示某次提交的元数据和内容变化。
 
    17、git show --name-only [commit]:显示某次提交发生变化的文件。
 
    18、git show [commit]:[filename]:显示某次提交时,某个文件的内容。
 
    19、git reflog:显示当前分支的最近几次提交
 
 
8、远程同步
    1、git fetch [remote]:下载远程仓库的所有变动。
 
    2、git remote -v:显示所有远程仓库。
 
    3、git remote show [remote]:显示某个远程仓库的信息。
 
    4、git remote add [shortname] [url]:增加一个新的远程仓库,并命名。
 
    5、git push [remote] [branch]:上传本地指定分支到远程仓库。
 
    6、git push [remote] --force:强行推送当前分支到远程仓库,即使有冲突。
 
    7、git push [remote] --all:推送所有分支到远程仓库。
 
 
9、撤销
    1、git checkout [file]:回复暂存区的指定文件到工作区。
 
    2、git checkout [commit] [file]:恢复某个commit的指定文件到暂存区和工作区。
 
    3、git checkout:恢复暂存区的所有文件到工作区。
 
    4、git reset [file]:重置暂存区的指定文件,与上一次commit保持一致,但工作区不变。
 
    5、git reset --hard:重置暂存区与工作区,与上一次commit保持一致。
 
    6、重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变。
 
    7、git reset --keep [commit]:重置当前HEAD为指定commit,但保持暂存区和工作区不变。
 
    8、git revert [commit]:新建一个commit,用来撤销指定commit;后者的所有变化都将被前者抵消,并且应用到当前分支。
 
    9、暂时将未提交的变化移除,稍后再移入:
        1、git stash
 
        2、git stash pop
 
 
10、其他
    1、git archive:生成一个可供发布的压缩包
 
    2、rm .git:删除项目的git管理
 
 
--------------------github操作说明--------------------
1、登录github注册对应的账号
    https://github.com
 
 
2、创建一个项目:
    New repository
 
 
3、clone项目:
    $ git clone https://(url)
 
 
4、第一次使用需配置用户名和邮箱:
    $ git config --global user.name ""
    $ git config --global user.email ""
 
5、测试操作
    $ git add test.py
    $ git commit -m "init test.py"
    $ git push origin master
    注:最后需要输入对应的账号和密码
 
6、ssh配置:
    1、Settings --> SSH and GPG keys:可以为项目配置身份密钥,这样不必每次推送都输入账号和密码
 
    2、ubuntu下生成当前电脑ssh秘钥
 
    3、ssh -keygen
        1、id_rsa是私钥,自己保管好
        2、id_rsa.pub是公钥,上传至github
 
    4、将公钥上传至github作为ssh keys
 
    5、修改项目的配置文件ssh方式,编辑项目里的.git/config文件
        [core]
            repositoryformatversion = 0
            filemode = true
            bare = false
            logallrefupdates = true
        [remote "origin"]
            #url = https://github.com/(url)
            url = git@github.com:(url)
            fetch = +refs/heads/*:refs/remotes/origin/*
        [branch "master"]
            remote = origin
            merge =refs/heads/master
 
 
--------------------GitHub简介--------------------
1、GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。
2、GitHub 于 2008 年 4 月 10 日正式上线,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目 Ruby on Rails、jQuery 等

常用Git操作的更多相关文章

  1. 常用 Git 操作

    最新博客链接:https://feiffy.cc/Git 日常用到的GIT的一些操作,记下来,以备参考. 删除文件 git rm filename git commit -m "remove ...

  2. 个人常用Git操作记录

    本地分支与远程分支建立联系 Git - 新建本地分支与远程分支关联问题 查看本地分支与远程分支关系: git branch -vv 当前分支与远程分支建立关系: git branch --set-up ...

  3. git系列之---工作中项目的常用git操作

    0.本地git的安装 官网下载 1.git 配置 git config user.name  查看 用户名 git config user.email   查看 邮箱 git config --glo ...

  4. IDEA中的Git操作,看这一篇就够了!

    大家在使用Git时,都会选择一种Git客户端,在IDEA中内置了这种客户端,可以让你不需要使用Git命令就可以方便地进行操作,本文将讲述IDEA中的一些常用Git操作. 环境准备 使用前需要安装一个远 ...

  5. 工作中常用Git指令操作

    常用Git指令总结 前阵子有几天好不顺,可谓是喝水都呛着,更何况被Git给呛着了,还不轻,哈哈.所以打算总结一下自己在工作使用到Git相关的东西以及和大家探讨使用GIt的心得体会.于是,关于Git的的 ...

  6. git操作常用命令

    一.使用git 1.git是什么? Git是目前世界上最先进的分布式版本控制系统. SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己 ...

  7. Git常用的操作指令

    修改最后一次提交 有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了.想要撤消刚才的提交操作,可以使用--amend 选项重新提交: 1 $ git commit --amend -m& ...

  8. Git 工作原理以及常用命令操作

    GIT工作原理 要了解GIT工作原理,先了解GIT的这几块区域: 工作区域划分 工作区:指的是本地工作空间,如果刚拉取下来的代码,没有修改的内容,这块区域是空白的 (modified-已修改状态) 暂 ...

  9. 工作中常用的Git操作--------(一)

    今天主要记录一下平常工作当中使用的git操作: 1.git的安装这里省略: 2.git的操作指令: 在项目开发中,经常是拉去经理已经搭建好的一个项目,也就是给我们一个git地址.比如:http://g ...

随机推荐

  1. 【SignalR学习系列】5. SignalR WPF程序

    首先创建 WPF Server 端,新建一个 WPF 项目 安装 Nuget 包 替换 MainWindows 的Xaml代码 <Window x:Class="WPFServer.M ...

  2. 高效搭建lnmp环境

    1:安装nginx       sudo apt-get install nginx       检测 nginx   : sudo nginx -t  出现如下表示成功        2:安装配置m ...

  3. LoadRunner性能测试-LoadRunner工具安装

    Loadrunner11安装 1,在网上下载loadrunner11安装包 (百度可以下载安装包) 2,打开安装文件,点击setup.exe进行安装: 3,win10系统可能会出现如下问题: 提示管理 ...

  4. Redis-消息发布与订阅

    redis的消息发布与订阅适合做在线聊天, 消息推送 使用方法: 发布端: publish +频道名称 + 发布内容 订阅端: subscribe + 频道名称 发布端例子: 127.0.0.1:63 ...

  5. RF+Appium框架自动化测试系列一之(Mac下Appium环境搭建)万事开头难

    消失了3个月,有一段时间没来园子更新博客了,各位看官见谅哈哈,消失是因为刚换了工作环境没外网,好多笔记没能及时的记录分享,以后有时间慢慢补上吧,这段时间主要接触了移动端app的自动化测试,公司为了快速 ...

  6. JDBC连接数据库的基本步骤

    第一步:注册驱动==>:Class.forName("数据库驱动的完整名称(mysql的数据库驱动名称:com.mysql.jbdc.Driver)"); 第二步:创建一个数 ...

  7. swift 导出测试包(Save for Ad Hoc Deployment)卡在compile bitcode处问题

    如图取消Rebuild from bitcode选中速度会快很多

  8. MapReduce最大值

    package com.bw.hadoop;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import ...

  9. tps 与 事务平均响应时间关系对答

    在网上看到一篇文章,tps 与 事务平均响应时间关系对答.可以帮助能更清楚的了解二者之间的关系. 问者:每秒处理的事务数和事务的平均响应时间 怎么个关系,有关系吗 kaku21:举个例子:一个高速路 ...

  10. 机器学习笔记——拉格朗日乘子法和KKT条件

    拉格朗日乘子法是一种寻找多元函数在一组约束下的极值方法,通过引入拉格朗日乘子,可将有m个变量和n个约束条件的最优化问题转化为具有m+n个变量的无约束优化问题.在介绍拉格朗日乘子法之前,先简要的介绍一些 ...