github 搭建远程仓库和分支、标签的操作


● git是分为四部分:
① 一部分是你自己的文件,
② 缓存区:git add xx将修改保存到缓存区
③ 本地库:git comiit 是将本地修改保存到本地仓库中
④ 远程仓库:git push 将本地仓库修改推送到服务器上的仓库中

一、搭建远程仓库

通过命令行创建一个新的版本库

touch README.md
git init     					#1. 初始化项目 
git add README.md               #2. 添加到缓存区  -A(当前目录全部文件)
git commit -m "first commit"    # 3. 提交git到版本库 -m是提交的注释
git remote add origin xxx.git   # 4. 绑定远程仓库
git push -u origin master       # 5. 推送

问题 :git push origin 与 git push -u origin master的区别

$ git push origin
上面命令表示,将当前分支推送到origin主机的对应分支。 
如果当前分支只有一个追踪分支,那么主机名都可以省略。 
$ git push 如果当前分支与多个主机存在追踪关系,那么这个时候-u选项会指定一个默认主机,
这样后面就可以不加任何参数使用git push。
 
$ git push -u origin master 上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,
后面就可以不加任何参数使用git push了。 不带任何参数的git push,默认只推送当前分支,这叫做simple方式。
此外,还有一种matching方式,会推送所有有对应的远程分支的本地分支

参考: git push 本地项目推送到远程分支 git命令版.

通过命令行推送一个已存在的版本库

 git remote add origin xxx.git
 git push -u origin master

二、基本操作

1. git pull

git pull 命令用于从远程获取代码并合并本地的版本。
git pull 其实就是 git fetch 和 git merge FETCH_HEAD 的简写。 命令格式如下:

git pull <远程主机名> <远程分支名>:<本地分支名>

实操:

# 基本的更新
$ git pull
$ git pull origin

#################################
# 将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并。
git pull origin master:brantest

#如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
git pull origin master

三、分支管理

1. 新建分支

① 从已有的分支创建新的分支(如从master分支), 创建一个dev分支,并切换到dev分支

git checkout -b dev

② 创建完可以查看一下,分支已经切换到dev (会列出所有分支,当前分支的面会有一个*号)

git branch

也可手动切换到 dev分支

git checkout dev

③ 提交该分支到远程仓库

git push origin dev

2. 拉取分支

① 把远程分支拉到本地,dev为远程仓库的分支名

git fetch origin dev

② 在本地创建分支dev并切换到该分支

           (本地分支名称) (远程分支名称)
git checkout -b dev       origin/dev

③ 把某个分支上的内容都拉取到本地

git pull origin dev(远程分支名称)

3. 提交分支

① 首先切换到dev分支上,进行提交推送

git checkout dev

② 推送到dev分支上

git add .
git commit -m ‘dev'
git push -u origin dev

4. 合并分支

① 首先切换到master分支上

git checkout master

② 如果是多人开发的话 需要把远程master上的代码pull下来

git pull origin master

③ 把dev分支的代码合并到master上

git merge dev

④ push到远程master上

git push origin master

5. 删除分支

① 删除本地分支:

git branch -d dev

② 删除远程分支:

git push remote_name -d remote_branch_name

如下:
在这里插入图片描述

git branch -a 

查看所有分支,包括远程分支

6. 分支改名

参考: git修改分支名称

假设分支名称为oldName, 想要修改为 newName

① 本地分支重命名(还没有推送到远程)

git branch -m oldName newName

② 远程分支重命名 (已经推送远程-假设本地分支和远程对应分支名称相同)

# a. 重命名远程分支对应的本地分支
git branch -m oldName newName

# b. 删除远程分支
git push --delete origin oldName

# c.上传新命名的本地分支
git push origin newName

# d.把修改后的本地分支与远程分支关联
git branch --set-upstream-to origin/newName

c、d合并:

git push -u origin newName

如果已经关联了远程分支,要先解除关联才可以:

git branch --unset-upstream

7. 查看分支合并图

git log --graph

学习参考git 合并分支和提交的步骤

四、标签管理

通常,发布一个版本时,会在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。

简单理解:标签是某个版本的别名,因为Git的版本号都是用一串字母数字组成,为了便于管理,Git 可以给版本取个别名(也就是打上标签,比如标签的名字叫做 v1.0.0)。

学习参考Git 标签管理(创建标签、操作标签)

打标签:git tag 标签名
查看所有标签:git tag
指定commit id打标签:git tag 标签名 commitID
指定标签信息:git tag -a 标签名 -m “标签信息”
切换到指定标签: git checkout 标签名
查看说明文字:git show 标签名

1.推送标签

●推送标签到远程:git push origin 标签名
●一次性推送全部尚未推送到远程的本地标签: git push origin --tags

2. 删除标签

●先本地删除: git tag -d 标签名
再从远程删除:git push origin :refs/tags/xxx
在这里插入图片描述

五、版本恢复

● 回退版本

#查看提交的序号,也可以直接在服务器看文件
git log   

#记得先提交保存,
git reset --hard xxx   

#此时如果用 “git push” 会报错,因为我们本地库HEAD指向的版本比远程库的要旧:
git push -f    #强推

在这里插入图片描述

● mixed 、soft 、hard 参数

git reset [--soft | --mixed | --hard] [HEAD]
--mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。
--soft 参数用于回退到某个版本
--hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交

五、Git 下载代理等

# 常用下载指令
git clone -b v4.1.3 https://github.com/mavlink/qgroundcontrol.git --recursive
# 更新子目录:       
git submodule update
# socks5协议,1080端口修改成自己的本地代理端口
git config --global http.proxy 'socks5://127.0.0.1:10808'  
git config --global https.proxy 'socks5://127.0.0.1:10808'  

# http协议,1081端口修改成自己的本地代理端口
git config –global http.proxy http://127.0.0.1:1081   # 'http://127.0.0.1:10808'
git config –global https.proxy https://127.0.0.1:1081
# 取消代理
git config --global --unset http.proxy 
git config --global --unset https.proxy
# 查看所有配置
git config -l

六、常见报错

如下报错:

在这里插入图片描述

出错原因:

出现此种错误的原因是,在当前的 git 的项目中,存在其中的子文件夹隶属于别的git项目地址,即存在git文件夹。具体见下图:
在这里插入图片描述
解决方案:

解决方案也是一目了然,即 删除子文件夹中的git目录即可,也就是去掉其他git地址对子文件夹内容的追踪,有一个取巧的办法是,如果仍然想要保留子文件夹原git的地址,可以将原来的git文件夹中config拷贝出来保留下来,里面有git原地址相关信息。

参考: github项目的开发创建仓库、分支管理、分支策略、标签管理.

  • 7
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值