Git的官方网站:http://git-scm.com

一、GIT初始化设置:

创建密钥

ssh‐keygen ‐t rsa ‐C "xxxx@xxxx.com"

添加远程仓库

添加远程origin库关联
git remote add origin git@github.com:[用户名]/[仓库名].git 查看远程仓库
git remote -v 删除远程origin库的关联
git remote rm origin

用户名邮箱配置

全局配置

 git config --global user.name "xxxx"
git config --global user.email "xxxx@xx.com"
git config --list

项目单独配置(在项目根目录下)

 git config user.name "xxxxx"
git config user.email "xxxxx@xxxx.com"
git config --list

Clone远程仓库

git clone 项目地址

创建本地仓库

git init

代理设置

查看全局代理设置
git config --global http.proxy 设置http,https,socket代理 以`127.0.0.1:1080`为例
git config --global http.proxy 'http://127.0.0.1:1080'
git config --global https.proxy 'http://127.0.0.1:1080'
git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080' 需要代理用户名密码的情况,以http为例
git config http.proxy http://username:password@127.0.0.1:1080 忽略SSL证书错误
git config --global http.sslVerify false 删除 proxy
git config --global --unset http.proxy
git config --global --unset https.proxy

自定义操作

让Git显示颜色,会让命令输出看起来更醒目
git config ‐‐global color.ui true 自定义git命令,以简化"git status"成"git st"为例:
git config ‐‐global alias.st status 自定义日志颜色
git config ‐‐global alias.lg "log ‐‐color ‐‐graph ‐‐pretty=format:'%Cred%h%Creset ‐%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' ‐‐abbrev‐commit" git lg

二、GIT基本操作

添加到暂存区区

表示添加所有内容
git add -A 表示添加新文件和编辑过的文件不包括删除的文件
git add . 表示添加编辑或者删除的文件,不包括新添加的文件
git add -u 强制添加一个被.gitignore文件忽略的文件的版本库
git add ‐f [文件名]

提交

git commit`

删除

从版本库删除某个文件
git rm [文件名]

版本回退

撤回到某个版本
git reset --hard [提交ID] 查看过去的提交历史
git log 查看所有的提交历史
git reflog

撤销修改

让file回到最近一次 "git commit" 或 "git add" 时的状态
git checkout -- [文件名] 可以把暂存区的file修改撤销掉(unstage),重新放回工作区
git reset HEAD [文件名]

三、GIT分支操作

创建分支

创建一个dev分支并且切换到dev分支
git checkout ‐b dev 创建dev分支
git branch dev 切换到dev分支
git checkout dev 创建远程origin的dev分支到本地
git checkout ‐b dev origin/dev 查看分支
git branch

分支命名规范: issue-100 bug修复分支 feature-sms sms功能分支

分支合并

合并dev到当前的分支
git merge dev 合并分支,并且禁用 Fast forward
git merge ‐‐no‐ff ‐m "merge with no‐ff" dev

Fast forward模式: Git在merge时生成一个新的commit,以便于从分支历史上就可以看出合并分支信息

分支推送

当前master分支推送到远程
git push ‐u origin master

分支绑定

将本地的dev分支和远程的origin的dev分支绑定
git branch ‐‐set‐upstream dev origin/dev 以后就可以直接pull了
git pull

分支删除

删除dev分支
git branch ‐d dev 强行删除
git branch ‐D dev

stash功能

把当前的工作状态保存下来,以便于后面恢复,包括index区。
git stash 把当前的工作状态保存下来,以便于后面恢复,包括index区。
git stash list 恢复statsh内容,但是不删除statsh
git stash apply 恢复指定的stash
git stash apply stash@{0} 删除stash内容
git stash drop 恢复同时删除stash内容
git stash pop

四、GIT标签操作

本地操作

查看分支
git tag 给当前分支打标签
git tag 给某个提交打标签
git tag [标签名] [提交ID] 创建带有说明的标签,用 -a 指定标签名, -m 指定说明文字
git tag ‐a [标签名] ‐m "第一个正式版本" [提交ID] 查看标签说明
git show [标签名] 删除标签
git tag -d [标签名]

远程操作

标签推送
git push origin [标签名] 推送全部尚未推送到远程的本地标签:
git push origin ‐‐tags 删除远程标签
1. 先删除本地标签
git tag -d [标签名]
2. 再推送远程
git push origin :refs/tags/[标签名]

五、Github同步原作者代码


1. 查看远程状态
git remote -v 2. 添加原作者的远程仓库到remote
git remote add upstream 原作者远程仓库地址 3. 同步fork
git fetch upstream 4. 切换到本地主分支
git checkout master 5. 把 upstream/master 分支合并到本地 master
git merge upstream/master 6. push到远程仓库
git push origin master 7. 解决冲突
直接编辑冲突文件,然后提交更改重新push即可

六、GIT多人协作的工作模式

1. 首先,试图推送自己的修改
git push origin branch-name 2. 如果推送失败,则因为远程分支比你的本地更新,需先试图合并
git pull 3. 如果合并有冲突,则解决冲突,并在本地提交 4. 没有冲突或者解决掉冲突后,再推送就能成功!
git push origin branch-name 如果"git pull"提示“no tracking information”,则先命令绑定关系
git branch --set-upstream branch-name origin/branch-name

七、GIT关联Gitee和GitHub

1. 删除已有的默认远程库:
git remote rm origin 2. 关联码云的远程库
git remote add [远程库别名] git@gitee.com:xxx/xxx.git 3. 关联GitHub远程库
git remote add [远程库别名] git@github.com:xxx/xxx.git 4. 查看远程库信息
git remote ‐v 5. 分别推送到github和gitee 以别名github为例,推送到GitHub,使用命令:
git push github master 以别名gitee为例,推送到码云,使用命令:
git push gitee master 至此,我们的本地库就可以同时与多个远程库互相同步

八、Github 解决敏感配置文件上传问题

  1. 将真正的config文件加入.gitignore,然后推送一个基本的config_example文件
  2. push 结束后,再把 config_example 添加到 .gitignore 中。
  3. 经典情景: 别人先clone 你的项目,把 config_example 文件 pull 下来后,复制一份再重命名为config,根据自己的环境稍加修改config文件。然后把两文件都添加到.gitignore 中。以后push 则不会再对远程仓库造成影响。

九、.gitignore文件忽略原则

忽略文件的原则

1. 忽略操作系统自动生成的文件,比如缩略图等;
2. 忽略编译生成的中间文件、可执行文件等;
3. 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

检查文件忽略情况

git check‐ignore ‐v [文件名]

十、搭建git私服,以ubuntu为例

基本使用

1. 安装git:
sudo apt-get install git 2. 创建一个git用户,用来运行git服务:
sudo adduser git 3. 创建证书登录:
收集员工公钥`id_rsa.pub`文件,导入到`/home/git/.ssh/authorized_keys`文件里,一行一个。 4. 初始化Git仓库:
选定目录作为Git仓库,假定是`/srv/sample.git`,在`/srv`目录下输入命令:
sudo git init --bare sample.git 5. 把owner改为`git`
sudo chown -R git:git sample.git 6. 禁用shell登录: 编辑`/etc/passwd`文件
git:x:1001:1001:,,,:/home/git:/bin/bash
改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell 7. 克隆远程仓库:
git clone git@server:/srv/sample.git

扩展使用

  1. 管理公钥

    Gitosis
  2. 管理权限

    Gitolite

GIT和GitHub的使用总结的更多相关文章

  1. 简单使用Git和Github来管理自己的代码和读书笔记

    原文链接:http://my.oschina.net/bxxfighting/blog/378196   先注册github.com的账号官方网站: https://github.com/ 注册界面, ...

  2. git for windows 的默认工作路径(HOME)的设置以及Git与GitHub之间的SSH加密协议

    1.安装及配置默认路径 Windows中从GitHub上面:https://git-for-windows.github.io/ 下载安装好git后(双击,改一下需要的安装路径,一路确定就好了),安装 ...

  3. git与github安装、配置、pull、push

    操作系统是Ubuntu 16.04 LTS 64bit 1 安装git (1)安装 sudo apt-get install git-core (2)一些全局变量的初始化 在本地建立一个文件夹,然后做 ...

  4. 转:sublime上使用git连接github

    "工欲善其事,必先利其器." 这是古人的教诲,也是一个高效率的工程师需要遵循的法则之一.从大学开始写Java使用了JBuilder,Eclipse,后来写PHP用了Zend,写Ja ...

  5. git与github使用

    Git和Github简单教程 目录: 零.Git是什么 一.Git的主要功能:版本控制 二.概览 三.Git for Windows软件安装 四.本地Git的使用 五.Github与Git的关联 六. ...

  6. linux下git以及github的连接与使用

    简单理解 Git 的思想和基本的工作原理,能够更好的进一步和使用Git.在开始学习Git 的时候,最好不要把Git的各种概念和其他的版本控制系统诸如 Subversion 等相比,否则容易混淆每个操作 ...

  7. Git和Github简单教程

    原文链接:Git和Github简单教程 网络上关于Git和GitHub的教程不少,但是这些教程有的命令太少不够用,有的命令太多,使得初期学习的时候需要额外花不少时间在一些当前用不到的命令上. 这篇文章 ...

  8. Git和Github简单教程(转)

    这篇文章只挑一部分命令来讲,差不多够用就行的程度.如果需要其他命令,到时候再去其他地方了解就行了先在Github上写好再搬过来的:本文Github链接 目录: 零.Git是什么 一.Git的主要功能: ...

  9. WebStorm和sublime上使用git连接github(转)

    WebStorm使用git连接github的方法: 用webstorm上传代码时,首先要先下载git,网址一搜就可以搜到,安装git,并且把ssh配置到github上.然后开始配置webstorm,打 ...

  10. git和github使用方式

    git 和github github是远程管理代码的服务器的名称 git代码管理系统 (git既然是一个系统,所以说git也有一些命令) git操作过程 首先在本地建立一个仓库,用来把代码提交到git ...

随机推荐

  1. JAVA基础之——序列化和反序列化

    1 概念 序列化,将java对象转换成字节序列的过程. 反序列化,将字节序列恢复成java对象的过程. 2 为什么要序列化? 2.1 实现数据持久化,当对象创建后,它就会一直在,但是在程序终止时,这个 ...

  2. BZOJ5068: 友好的生物(状压 贪心)

    题意 题目链接 Sol 又是一道神仙题??.. 把绝对值拆开之后状压前面的符号?.. 下界显然,但是上界为啥是对的呀qwq.. #include<bits/stdc++.h> using ...

  3. Tomcat学习总结(一):目录简介

    一:下载地址和目录结构说明. Tomcat官方站点:http://jakarta.apache.org 下载Tomcat安装程序包:http://tomcat.apache.org/

  4. iOS中基于WebView的HTML网页离线访问技术的实现

    其实就是MVC模式,视图在在线.离线时可以共用,控制器在在线时是由服务器端实现的,而离线时则是由本地Obj-C代码实现.具体实现方式为采用Mongoose实现. 代码为: mongoose.h mon ...

  5. Ubuntu下搭建Hbase单机版并实现Java API访问

    工具:Ubuntu12.04 .Eclipse.Java.Hbase 1.在Ubuntu上安装Eclipse,可以在Ubuntu的软件中心直接安装,也可以通过命令安装,第一次安装失败了,又试了一次,开 ...

  6. 用canvas播放scratch文件

    原文地址:https://blog.csdn.net/qq_36268036/article/details/84262540 基于Github上的scratch-render实现sb2或者sb3文件 ...

  7. 入门级 - 码云(Gitee),GitHub 教程

    这篇文章的目的是记录我的关于GitHub的内容,从注册.下载直到设置成功每一步都有解释,其中有一些截图或者代码来自于网络. GitHub和码云均基于Git,所以两者的操作方法基本一致,只需要学习其中一 ...

  8. 导入自定义模块model

    编写m2.py,脚本内容如下: #!/usr/bin/python # -*- coding: utf-8 -*- 'its a module test' __author__ = 'mm' impo ...

  9. MP4

  10. 沉淀再出发:关于IntelliJ IDEA使用的一些总结

    沉淀再出发:关于IntelliJ IDEA使用的一些总结 一.前言 在使用IDEA的时候我们会发现,如果我们先写了一个类的名字,而没有导入这个类的出处,就会提示出错,但是不能自动加入,非常的苦恼,并且 ...