在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. github action 实现CI/CD

    两种github action 打包.Net Core 项目docker镜像推送到阿里云镜像仓库 1.GitHub Actions 是什么? 大家知道,持续集成由很多操作组成,比如抓取代码.运行测试. ...

  2. [CF1519C] Berland Regional (数论分块)

    题面 有 n 个学生和 n 所大学,每个学生在其中一所大学中学习,且各有一个能力值 s i s_i si​ . 某次组队打比赛的召集令会给一个数字 k ,表示团队数量.然后每所大学会先把自己的所有学生 ...

  3. 第五十四篇:网络通信Axios

    好家伙,补充知识 1.什么是Axios? Axios可以在浏览器中发送 XMLHttpRequests Axios 是一个基于 promise 的 HTTP 库,简单的讲就是可以发送get.post请 ...

  4. SpringMvc(一)-初识

    1.环境搭建 1.1 jar包 <spring.version>4.3.18.RELEASE</spring.version> <!-- spring-mvc begin ...

  5. .Net+Vue3实现数据简易导入功能

    在开发的过程中,上传文件或者导入数据是一件很常见的事情,导入数据可以有两种方式: 前端上传文件到后台,后台读取文件内容,进行验证再进行存储 前端读取数据,进行数据验证,然后发送数据到后台进行存储 这两 ...

  6. Linux 常用脚本命令

    Linux 常用(脚本)命令 1. 统计目录下文件个数 ll |grep "^-"|wc -1 解释 grep "^-"表示抓取以-开头的行(其他忽略)

  7. 微服务系列之网关(二) konga配置操作

    1.konga核心对象 Kong 的四大核心对象:upstream,target,service,route.下面分别说: (1)upstream,字面意思上游,实际项目理解是对某一个服务的一个或者多 ...

  8. vue3+three.js实现疫情可视化

    前言 自成都九月份以来疫情原因被封了一两周,居家着实无聊,每天都是盯着微信公众号发布的疫情数据看,那种页面,就我一个前端仔来说,看着是真的丑啊!(⊙_⊙)?既然丑,那就自己动手开整!项目是2022.9 ...

  9. 基于 iframe 的微前端框架 —— 擎天

    vivo 互联网前端团队- Jiang Zuohan 一.背景 VAPD是一款专为团队协作办公场景设计的项目管理工具,实践敏捷开发与持续交付,以「项目」为核心,融合需求.任务.缺陷等应用,使用敏捷迭代 ...

  10. mocha、chai和supertest单元测试

    mocha单元测试 1. 因为有时候在代码中加了新的东西需要反复测试接口 或者 别人要求 重新跑接口非常的繁琐 2. 所有我们需要一个帮我们重复测试的东西  那就是mocha 3. 先下载 一定不要全 ...