GIT和GitHub的使用总结

目录

  • 一、GIT初始化设置:
    • 创建密钥
    • 添加远程仓库
    • 用户名邮箱配置
    • Clone远程仓库
    • 创建本地仓库
    • 代理设置
    • 自定义操作
  • 二、GIT基本操作
    • 添加到暂存区区
    • 提交
    • 删除
    • 版本回退
    • 撤销修改
  • 三、GIT分支操作
    • 创建分支
    • 分支合并
    • 分支推送
    • 分支绑定
    • 分支删除
    • stash功能
  • 四、GIT标签操作
    • 本地操作
    • 远程操作
  • 五、Github同步原作者代码
  • 六、GIT多人协作的工作模式
  • 七、GIT关联Gitee和GitHub
  • 八、Github 解决敏感配置文件上传问题
  • 九、.gitignore文件忽略原则
    • 忽略文件的原则
    • 检查文件忽略情况
  • 十、搭建git私服,以ubuntu为例
    • 基本使用
    • 扩展使用

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 -v2. 添加原作者的远程仓库到remotegit remote add upstream 原作者远程仓库地址3. 同步forkgit fetch upstream4. 切换到本地主分支git checkout master5. 把 upstream/master 分支合并到本地 mastergit merge upstream/master6. push到远程仓库git push origin master7. 解决冲突
直接编辑冲突文件,然后提交更改重新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 origin2. 关联码云的远程库 git remote add [远程库别名] git@gitee.com:xxx/xxx.git3. 关联GitHub远程库git remote add [远程库别名] git@github.com:xxx/xxx.git4. 查看远程库信息git remote ‐v5. 分别推送到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 git2. 创建一个git用户,用来运行git服务:sudo adduser git3. 创建证书登录:收集员工公钥`id_rsa.pub`文件,导入到`/home/git/.ssh/authorized_keys`文件里,一行一个。4. 初始化Git仓库:选定目录作为Git仓库,假定是`/srv/sample.git`,在`/srv`目录下输入命令:sudo git init --bare sample.git5. 把owner改为`git`sudo chown -R git:git sample.git6. 禁用shell登录: 编辑`/etc/passwd`文件git:x:1001:1001:,,,:/home/git:/bin/bash改为:git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell7. 克隆远程仓库:git clone git@server:/srv/sample.git

扩展使用

  1. 管理公钥
    Gitosis
  2. 管理权限
    Gitolite

转载于:https://www.cnblogs.com/LingCoder/p/10060224.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570090.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分析MySQL数据类型的长度

分析MySQL数据类型的长度 MySQL有几种数据类型可以限制类型的"长度"&#xff0c;有CHAR(Length)、VARCHAR(Length)、TINYINT(Length)、SMALLINT(Length)、MEDIUMINT(Length)、INT(Length)、BIGINT(Length)、FLOAT(Length, Decimals)、DOUBLE(Length, Decimals)和DECI…

Mysql partition by

一&#xff0c;看原表 select * from user; 二&#xff0c;查询同组年级最大的 select username ,SUBSTRING_INDEX( GROUP_CONCAT(age order by age desc) ,,,1) uuid from ( select uuid ,username ,password ,age from user )b GROUP BY uuid asc; 转载于:https://www.cn…

tomcat内存溢出,修改设置

问题描述&#xff1a; 1. java.lang.OutOfMemoryError: Java heap space JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值&#xff0c;其初始空间(即-Xms)是物理内存的1/64&#xff0c;最大空间(-Xmx)是物理内存的…

Mysql导入大容量SQL文件数据问题

mysql在通过导入sql文件可能会出现下面二个问题:1.如果sql文件过大,会出现"MySQL server has gone away"问题;2.如果sql文件数据有中文,会出现乱码 解决问题:问题1:出现MySQL server has gone away"问题,是因为mysql默认的"max_allowed_packet"变量…

电脑的引导启动快捷键

组装机主板品牌笔记本品牌台式机主板品牌启动按键笔记本品牌启动按键台式机品牌启动按键华硕主板F8联想笔记本F12联想台式机F12技嘉主板F12宏基笔记本F12惠普台式机F12微星主板F11华硕笔记本ESC宏基台式机F12映泰主板F9惠普笔记本F9戴尔台式机ESC梅捷主板ESC或F12联想ThinkpadF…

swift 4.2 - 根据字符串 push指定控制器

俩个方法 1. 创建类写成 类方法 import UIKit /** 注释&#xff1a;获得VC* 1.字符串 和使用的控制器&#xff0c;直接跳转* 2.用过字符串获得对应VC*/ class JYGetPushVc: NSObject {/// 指定字符串VC跳转,设置titlestatic func pushVcByVcNameAndTitle(pushVcNameStr:String…

linux下IPTABLES配置详解

如果你的IPTABLES基础知识还不了解,建议先去看看.开始配置我们来配置一个filter表的防火墙.(1)查看本机关于IPTABLES的设置情况[roottp ~]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destination Chain FORWARD (polic…

centos通过添加chrome源来安装chrome

在google网站下载chrome速度很慢&#xff0c;但是添加了chrome的源之后&#xff0c;就可以在终端通过yum install 来安装chrome了&#xff0c;会快很多。 首先在/etc/yum.repos.d里建立一个名为google.repo文件&#xff0c;然后复制以下代码到其中&#xff0c;然后保存&#xf…

鼠标滑过抖动图标

在线演示 本地下载 转载于:https://www.cnblogs.com/qixidi/p/10079608.html

centos7安装VLC播放器

1.安装eple 下载地址&#xff1a;https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm 2.安装nux-dextop下载地址&#xff1a;http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm3.执行yum update 4.…

每日站立会议 12.06

每日站立会议 今天我们开始了对button按钮中素菜部分代码的编写&#xff0c;我负责编写时代码的复审。转载于:https://www.cnblogs.com/grrd17s/p/10079973.html

CentOS安装五笔输入法

安装五笔需要安装一个 ibus-table-wubi 包 yum install ibus libusb ibus-libs ibus-table-wubi 安装好后注销一下系统&#xff0c;让ibus读取新的配置&#xff0c;然后就可以在ibus的设置界面添加wubi了 右击桌面右上角的输入法图标&#xff0c;选择 Preferences&#xff0c;…

Spring的两种代理方式:JDK动态代理和CGLIB动态代理

代理模式 代理模式的英文叫做Proxy或Surrogate&#xff0c;中文都可译为”代理“&#xff0c;所谓代理&#xff0c;就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下&#xff0c;一个客户不想或者不能够直接引用一个对象&#xff0c;而代理对象可以在客…

virtualbox 启动时报Kernel driver not installed (rc=-1908) 的错误

新建虚拟机后启动时出现如下错误&#xff1a;Kernel driver not installed (rc-1908)The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Re-setup the kernel module by executing/etc/init.d/vboxdrv …

拒绝推断问题(转)

拒绝推断&#xff08;Reject Inference&#xff09;是金融领域信用评分中的一个术语。对于要向银行借钱的人&#xff0c;我们需要考虑他们赖账的可能性。这样就需要根据他们的各种行为信息和人口统计学特征作为输入&#xff0c;来建立一个信用评分模型&#xff0c;这个建模过程…

查看CentOS系统运行了多久使用uptime命令

对于一些人来说系统运行了多久是无关紧要的&#xff0c;但是对于服务器管理员来说&#xff0c;这是相当重要的信息。 服务器在运行重要应用的时候&#xff0c;必须尽量保证长时间的稳定运行&#xff0c;有时候甚至要求零宕机。 那么我们怎么才能知道服务器运行了多久呢&#xf…

python学习day26 封装 property 类方法 静态方法 反射

封装 广义上面向对象的封装 &#xff1a;代码的保护&#xff0c;面向对象的思想本身就是一种只让自己的对象能调用自己类中的方法 狭义上的封装 —— 面向对象的三大特性之一属性 和 方法都藏起来 不让你看见 私有属性 class Person:__key 123 # 私有静态属性def __init__(se…

CentOS统的7个运行级别的含义

CentOS系统有7个运行级别(runlevel) 运行级别就是操作系统当前正在运行的功能级别。级别是从0到6&#xff0c;具有不同的功能。这些级别定义在/ect/inittab文件中。这个文件是init程序寻找的主要文件&#xff0c;最先运行的服务是那些放在/etc/rc.d目录下的文件。 #查看系统运行…

noip2004普及组第2题 花生采摘

题目描述 鲁宾逊先生有一只宠物猴&#xff0c;名叫多多。这天&#xff0c;他们两个正沿着乡间小路散步&#xff0c;突然发现路边的告示牌上贴着一张小小的纸条&#xff1a;“欢迎免费品尝我种的花生&#xff01;――熊字”。 鲁宾逊先生和多多都很开心&#xff0c;因为花生正是…

命令补全

yum install -y bash-completion转载于:https://www.cnblogs.com/tony3154/p/10095259.html