git初始化

1.设置名字和邮箱

 git config --global user.name "zhangsan"
git config --global user.email "zhangsan@gmail.com" 执行完以后,Linux在家目录下就会产生一个.gitconfig隐藏文件,windows点击开始-->个人文件夹(自己电脑的名字)
cat ~/.gitconfig
[user]
email = zhangsan@gmail.com
name = zhangsan 另外执行以下命令查看配置信息:
git config --list

2.获得git仓库

方法一:克隆一个仓库

cd  /home/guest/project   //自己的工作空间
git clone https://github.com/xxx

方法二:初始化一个新的仓库

cd /home/guest/project
git init
输出:Initialized empty Git repository in /home/guest/project/.git/ ls -al 发现 有.git文件夹
.git

3.生成公钥

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

4.生成公钥,配置到github


git基本操作

1.查看状态

git status

2.比较修改或者提交的内容

//比较本地工作空间和缓存中的差异
git diff //比较缓存中和上次提交的差异
git diff --cahced
按q退出

3.添加新创建或修改的文件到本地的缓存区

git add *

说明:
新建文件,在没有被添加缓存中时,状态为untracked git rm
删除文件,自动将已删除的文件信息加入缓存,git commit 后自动将本地仓库中的文件删除

4.提交代码到本地代码仓库

git commit -m "xxx"

说明:
-m 添加本次修改的注释
-a 参数将所有没有加到缓存区的修改也一起提交,但 -a 命令不会添加新建的文件

5.将本地仓库关联到远端仓库关联

git remote add 主机名  远端仓库地址

示例:
git remote add origin https://github.com/xxx/xxx.git 说明:
git remote add 命令用于添加远程主机,origin 是主机名 https://xxx 是远端仓库地址

6.将本地代码库同步到远端代码库

git push origin master

说明:
origin :主机名 master:分支名 问题记录:
提交会提示输入用户名和密码,解决办法:生成公钥,将公钥粘贴到远端仓库的SSH中。

5.创建新的分支

git branch xxx

查看当前分支列表
git branch 拉取远端所有的分支到本地
git fetch --all

6.切换分支

git checkout xxx

7.分支代码合并

两个分支:master、Dev,将Dev分支的代码合入到master分支。
具体操作如下: git checkout master //先切换到master分支
git merge -m "xxx合并的提交信息xxx" Dev //将Dev分支代码合并到master分支,如果两个分支修改了不同的文件,则合并不会产生冲突,否则会有冲突。 解决冲突:
(1.)查看状态: git status 错误:both modified
(2.)查看冲突文件:git diff 或者 cat xxx
(3.)手动解决冲突: vi xxx 找到冲突的地方<<<< ==== >>>>的地方,手动解决冲突,删除不需要的代码。

8.删除分支

git branch -d 分支名
git branch –D 分支名 //强制删除某个分支

9.撤销合并,放弃当前修改

git reset --hard HEAD^

10.git日志

git log //查看所有的提交记录
--stat 选项会显示在每个提交(commit)中哪些文件被修改了, 这些文件分别添加或删除了多少行内 格式化显示:
git log --pretty=oneline
git log --pretty=short
git log --graph --pretty=oneline //显示提交图
git log --pretty=format:'%h : %s' --topo-order --graph //显示提交拓扑图

11.查看两个分支之间的差异

方法一:
git diff master dev //查看master分支与dev分支之间的差异 --stat 参数可以统计一下有哪些文件被改动,有多少行被改动 方法二:
git checkout master //切换到master分支
git diff dev //比较和dev分支的差异
git diff dev file1 //比较和dev分支中的某个文件的差异

12.克隆分支,

场景一:一个用户,两个工作空间
(1.)从xxxproject中克隆一份到myrepo中
cd /tmp
git clone /home/guest/xxxproject myrepo (2.)修改并提交 myrepo中的文件
git add + git commit (3.)xxxproject中想拉去myrepo中的修改
git pull /tmp/myrepo master //myrepo 的主分支合并到了 xxxproject 的分支里 或者:
git remote add myrepo /tmp/myrepo //将myrepo添加为自己的远端分支
git fetch myrepo
git merge myrepo/master 场景二:xxxproject中文件修改并提交,myrepo需要拉取,直接git pull即可。
因为 myrepo 是从 xxxproject 仓库克隆的,那么他就不需要指定 gitproject 仓库的地 址。
因为 Git 把 xxxproject 仓库的地址存储到 myrepo 的配置文件中,这个地址就是在 git pull 时默认使用的远程仓库:
git config --get remote.origin.url //查看远端仓库地址

13.git标签

//创建标签
git tag 标签名 提交ID //commitID可通过git log查看
-s 参数来创建“签名的标签” //创建签名标签,让标签更可信
git config (--global) user.signingkey <gpg-key-id>
git tag -s stable-1 1b2e1d63ff git tag -u <gpg-key-id> stable-1 1b2e1d63ff //配置文件中没有gpg-key 可使用-u 手动指定 //查看已经创建的标签
git tag

总结

git config:配置相关信息
git clone:复制仓库
git init:初始化仓库
git add:添加更新内容到索引中
git diff:比较内容
git status:获取当前项目状况
git commit:提交
git branch:分支相关
git checkout:切换分支
git merge:合并分支
git reset:恢复版本
git log:查看日志

----------------------------------【喜欢打赏】-------------------------------------------

小主,辛苦啦!文章棒棒哒,赏杯咖啡吧...

----------------------------------【喜欢打赏】-------------------------------------------

git知识讲解的更多相关文章

  1. 【android Studio】零git知识、零脚本命令,即刻体验git版本管理魅力!

    git的优点就不去多说了.阻碍咱新手体验它的唯一问题就是门槛太高,脚本看着像天书, 本文主要阐述的,就是如何在android studio上,也能像tfs那样,非常简单的操作,就能使用git进行版本管 ...

  2. Html基础知识讲解

    Html基础知识讲解 <title>淄博汉企</title> </head> <body bgcolor="#66FFCC" topmar ...

  3. python基础知识讲解——@classmethod和@staticmethod的作用

    python基础知识讲解——@classmethod和@staticmethod的作用 在类的成员函数中,可以添加@classmethod和@staticmethod修饰符,这两者有一定的差异,简单来 ...

  4. Git知识总览(二) git常用命令概览

    上篇博客我们从 git clone 和 git status 两个命令开始,引出了一系列的git操作命令, 请参见:<Git知识总览(一) 从 git clone 和 git status 谈起 ...

  5. Git知识总览(三) 分支的创建、删除、切换、合并以及冲突解决

    前两篇博客集中的聊了git的一些常用命令,具体请参见<Git知识总览(一) 从 git clone 和 git status 谈起>.<Git知识总览(二) git常用命令概览> ...

  6. Git知识总览(四) git分支管理之rebase 以及 cherry-pick相关操作

    上篇博客聊了<Git知识总览(三) 分支的创建.删除.切换.合并以及冲突解决>,本篇博客我们主要来看一下 rebase 变基相关的操作.rebase 操作和 merge 操作最终都可以达到 ...

  7. iPhone激活策略知识讲解:官方解锁和黑解

    iPhone激活策略知识讲解:官方解锁和黑解 [复制链接]     LEECHY 该用户从未签到 1372 XY豆 438 帖子 440 贡献 苹果花 积分 2250 发消息 电梯直达 楼主    发 ...

  8. Tido c++线段树知识讲解(转载)

    线段树知识讲解 定义.建树.单点修改.区间查询         特别声明:如上的讲解说的是区间最大值 如果想要查询区间和 只需要改变一下建树和查询的代码就行了,如下 其他根据自己的需要进行修改即可

  9. java Reflection(反射)基础知识讲解

    原文链接:小ben马的java Reflection(反射)基础知识讲解 1.获取Class对象的方式 1.1)使用 "Class#forName" public static C ...

随机推荐

  1. Cassandra基础2

    ========================================================= gossip协议1.点对点(peer to perr)的网络通信协议,节点间地位相同 ...

  2. 解决winfrom下TextBox不支持透明背景色

    不知道微软扯什么拉鸡蛋子,居然有控件不支持透明,我实在想喷设计的人脑残.尤其可恨的是TextBox不支持,更可恨的是直到最新版.net4.6也不支持.源码又看不见,具体实现细节都不知道,谁能改得动?这 ...

  3. React V16.x 生命周期调整

    旧声明周期: table th:nth-of-type(5) { width: 400px; } 生命周期 属于阶段 调用次数 是否可以setState 作用 getDefaultProps 创建阶段 ...

  4. Hanlp分词实例:Java实现TFIDF算法

    算法介绍 最近要做领域概念的提取,TFIDF作为一个很经典的算法可以作为其中的一步处理. 关于TFIDF算法的介绍可以参考这篇博客http://www.ruanyifeng.com/blog/2013 ...

  5. jpa随笔

    1对多的关系 //多的一方@Entity @Table(name="car_distribute") public class DistributeCar extends Cust ...

  6. MySQL数据库优化小建议

    背景 “那啥,你过来一下!” “怎么了?我代码都单元测试了的,没出问题啊!”我一脸懵逼跑到运维大佬旁边. “你看看!你看看!多少条报警,赶快优化一下!”运维大佬短信列表里面好多MySQL CPU 10 ...

  7. Azure IOT Edge

    微软Build 2017大会,纳德拉表示,在计算力的飞速发展中,微软要做的就是将计算的能力赋权给普通用户,让技术为更多用户所用,让计算机视觉.文本理解等技术变得更加普惠(inclusive),同时构建 ...

  8. Video Processing subsystem例程分析

    Video Processing subsystem例程分析 1.memory_ss模块 slave端口: S00: 连接设备: microblaze_ss----M_AXI_DC 时钟来源: S01 ...

  9. OpenSSL 1.0.0生成p12、jks、crt等格式证书的命令个过程 -参考自http://lavasoft.blog.51cto.com/62575/1104993/

    OpenSSL 1.0.0生成p12.jks.crt等格式证书的命令个过程   此生成的证书可用于浏览器.java.tomcat.c++等.在此备忘!     1.创建根证私钥命令:openssl g ...

  10. ☞上一篇无聊文章 分析网站CSS构架流程(一)

    1.无力吐槽 2.reset.css 3.功能css() 4.单页面CSS 5.网站通用样式库 6.图标文件库