在git使用时,有时需要在公司内部搭建自己的git服务器,用于内部的版本控制。

从远程服务器到本地

先创建服务器端的空git库,将其clone到本地,再将本地的修改push到服务器端

# step1:
git init --bare sample.git # 在服务器上创建空的git版本库
chgrp 用户名 文件名 -R # ubuntu系统上有时,用户与组需要更改
chown 用户名 文件名 -R
# setp2:
git clone git@10.10.10.10:/home/git/sample.git # clone 空的git库到本地
# step3:
# 由于远程库是空的,我们第一次推送master分支时,加上了-u(--set-upstream)参数,git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
git push -u origin master

从本地到远程服务器

# setp1: 本地初始化一个git仓库
git init
# step2: 将远程与本地建立连接
git remote add origin git@10.10.10.10:/home/git/sample.git
# step3: 假设本地分支为dev,远程无此分支,现需要在远程新建此分支
git push --set-upstream origin dev

远程分支与本地分支 常用关系

场景1:已有本地分支,需要创建对应的远程分支

# dev为本地分支,但远程没有。指令可以自动在远程创建一个dev分支,并被本地dev分支track
git push --set-upstream origin dev

场景2:已有远程分支,需要创建对应的本地分支

# dev为远程分支,但本地没有。指令可以自动在本地创建一个dev分支,并track远程dev分支
git checkout --track origin/dev

场景3:已有本地分支和远程分支,让它们建立track

# dev_local 与 dev_remote分支 自动实现track
git branch --set-upstream-to=origin/dev_remote dev_local

常用指令

log相关

git log # 显示提交日志
git log --pretty=oneline #输出日志按行显示

远程分支相关

为一个项目添加多个远程仓库

git remote add github https://github.com/xxx/sample.git

查看远程仓库信息

# 查看名为 origin 的远程仓库
git remote show origin
git remote -v # 列出remote的一些信息

删除远程仓库

# 删除名为 origin 的远程仓库
git remote rm origin

为名为 origin 的远程仓库,添加两个url,从而一次push,可以推送到多个远程仓库。 修改.git/config文件中内容

[remote "origin"]
url = https://gitee.com/xxx/sample.git
url = https://github.com/xxx/sample.git
fetch = +refs/heads/*:refs/remotes/origin/*

分支相关

git branch -vva           # 查看远程与本地分支

git branch new_branch    # 新建一个分支,必转到新分支
git checkout new_branch git checkout -b new_branch # 与楼上功能相同

push相关

查看分支的 upstream 命令

git config --get branch.<分支名>.remote

设置分支的 upstream

# push时加上-u 或 --set-upstream
git push -u origin master
# 显示设置
git branch -u orgin/master
git branch --set-upstream-to=origin/master mster

删除分支的 upstream

git branch --unset-upstream

git pull 相关

若是有报错:

refusing to merge unrelated histories

执行

git pull origin master --allow-unrelated-histories

实现pull

git pull
# 等同于下面两条指令
git fetch
git merge FETCH_HEAD git pull origin master:brantest # 将origin的master分支拉取过来,与本地的brantest分支合并
git pull origin master # 将远程分支与当前分支合并

git 进阶篇的更多相关文章

  1. 2.git进阶篇总结

    阅读 Git 原理详解及实用指南 记录 进阶 1 - HEAD.master 与 branch: 介绍了 Git 中的一些「引用」:HEAD.master.branch.这里总结一下: HEAD 是指 ...

  2. Sass进阶之路,之二(进阶篇)

    Sass之二(进阶篇) 1. 数据类型 1.1 Number 数字类型,小数类型,带有像素单位的数字类型,全部都属于Number类型 Number类型详情请点击这里,下面是小例子 1.$n1: 1.2 ...

  3. Vue进阶篇

    前引 今天是2018年12月30,虽不是2018年的最后一天,但是却是自己在2018年写的最后一篇博客了,昨天下班在地铁上闲来无事,翻起了关注的一些公众号发的技术博文,里面就提到写博客的重要性,其实这 ...

  4. PowerShell攻防进阶篇:nishang工具用法详解

    PowerShell攻防进阶篇:nishang工具用法详解 导语:nishang,PowerShell下并肩Empire,Powersploit的神器. 开始之前,先放出个下载地址! 下载地址:htt ...

  5. CocoaPods详解之(二)----进阶篇

    CocoaPods详解之----进阶篇 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/19178709 转载请注明出处 ...

  6. Git进阶:常用命令和问题案例整理

    一.前言 整理常用git命令和以及在实际使用的过程中碰到的问题案例,旨在git进阶,提升工作开发效率,有需要补充的小伙伴欢迎下方留言,本篇持续更新中... 二.命令 配置用户名和邮箱 git conf ...

  7. 2. 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml

    目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...

  8. labview从入门到出家5(进阶篇)--程序调试以及labview函数库的运用

    跟了前面几章的操作流程,相信大家对labview有了一定的认识.其实只要了解了labview的编程思路,再熟悉地运用各个变量,函数以及属性,那么我们就可以打开labview的大门了.跟其他编程语言一样 ...

  9. Membership三步曲之进阶篇 - 深入剖析Provider Model

    Membership 三步曲之进阶篇 - 深入剖析Provider Model 本文的目标是让每一个人都知道Provider Model 是什么,并且能灵活的在自己的项目中使用它. Membershi ...

随机推荐

  1. PHP随机图片API

    相比上一个版本代码缩短了 此版本为图片专用 查看代码 <?php $img=file('img.txt');//txt文件 $url=array_rand($img);//imgtxt文档里面图 ...

  2. 内网技巧-通过SAM数据库获得本地用户hash的方法

    内网技巧-通过SAM数据库获得本地用户hash的方法 在windows上的C:\Windows\System32\config目录保存着当前用户的密码hash.我们可以使用相关手段获取该hash. 提 ...

  3. Linux安装Jenkins及配置svn使用

    目录 1. 下载 2. 创建文件夹 3. 安装 4. 修改端口,不用这步 5. 安装插件提速 6. 启动 7. 页面访问 8. 新建用户 9. 安装Subversion插件 10. 安装maven插件 ...

  4. k8s中几个基本概念的理解,pod,service,deployment,ingress的使用场景

    k8s 总体概览 前言 Pod 副本控制器(Replication Controller,RC) 副本集(Replica Set,RS) 部署(Deployment) 服务(Service) ingr ...

  5. SpringBoot使用libreoffice转换PDF

    1.简介 有时候我们需要在程序中使用到office的转换和预览功能,本文就针对这个需求记录了较为简单的office转换和功能:jodconverter.当然也有aspose和其他开源第三方(kkfil ...

  6. Python工具箱系列(四)

    上期描述了如何在Windows下安装官方的Python3.8,本期描述如何安装Anaconda.建立Python环境这个话题,为何要大费周章.不厌其烦的叙述呢,主要的原因是: 所有的语言在设计时,都假 ...

  7. 传输层协议(tcp ip和udp 三次握手 四次握手)

    1 TCP/IP协议介绍 TCP/IP协议:Transmission Control Protocol/Internet Protocol 传输控制协议/因特网互联协议. TCP/IP是一个Proto ...

  8. opencv videocapture

    import time import cv2 import numpy as np from os import path import pickle ''' 关于camera id 此处需要稍微说几 ...

  9. Kubernetes(K8S)特性有哪些?

    Kubernetes简介 Kubernetes是一个开源的,用于管理云平台中做个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单且高效,Kubernetes提供了应用部署,规划 ...

  10. Logstash: 启动监控及集中管理-总结

    Logstash: 启动监控 配置文件:logstash.yml xpack.monitoring.enabled: true xpack.monitoring.elasticsearch.usern ...