Github(4)-远程操作

使用github 托管代码简单使用教程--远程操作

  • 3.连接本地仓库与远程仓库
    • 3.1 git clone 克隆实现链接
    • 3.2 git remote add origin
  • 4.远程操作
    • 4.1 git checkout -b 切换分支1
    • 4.2 git branch 查看分支
    • 4.3 git merge 合并分支
      • 4.3.1 step1:切换成主分支
      • 4.3.2 step2:合并分支
      • 4.3.3 step3:删除分支
      • 4.3.4 git merge --no-ff 带参数合并分支
      • 4.3.5 -D 强制删除没有合并的分支
    • 4.4 git switch 切换分支2
    • 4.5 解决冲突
    • 4.6 分支管理策略
    • 4.7 创建bug分支
      • 4.7.1 git stash
      • 4.7.2 bug 修复工作流程
      • 4.7.3 git stash apply + git stash drop
      • 4.7.4 git stash pop
      • 4.7.5 git stash list
      • 4.7.6 git cheery-pick 一键修复多分支bug
    • 4.8 创建 feature 分支--新功能开发
    • 4.9 多人协作
      • 4.9.1 git remote
      • 4.9.2 git push 推送特定分支
      • 4.9.3 git pull
    • 4.10 rebase
  • 5.[git push](https://blog.csdn.net/u010312474/article/details/107915694)

廖雪峰老师博文学习笔记:https://www.liaoxuefeng.com/wiki/896043488029600/897884457270432


git pull 和 git fetch的区别?

3.连接本地仓库与远程仓库

3.1 git clone 克隆实现链接

克隆远程仓库到本地,克隆下来的仓库自然的形成和远程仓库的链接。

step 1.在github 平台上新建仓库
step 2.克隆改仓库到本地

git clone git@github.com:cyy-hub/Deecamp.git

step 3.在本地仓库上进行文件管理
step 4.将需要上推到远程仓库的文件进行Push操作

注意:
1.clone仓库,git会将本地的master 分支与远程的master分支对应起来。远程仓库默认名称是origin.
2.克隆下来时,只能看到master分支, 从远程创建其他分支到本地

git checkout -b dev origin/dev

3.2 git remote add origin

step1. 在本地新建一个仓库(新建一个文件夹之后 git init)

$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/

step 2.在github 平台上新建仓库(两个仓库的名字暂时设为一致)
step 3. 创建链接

git remote add origin git@github.com:cyy-hub/Deecamp.git

step 4.在本地仓库上进行文件管理
step 5.将需要上推到远程仓库的文件进行Push操作
第一次上推的时候用git push -u origin master,本地的master分支内容推送的远程新的master分支,同时将本地的master分支和远程的master分支关联起来

git push -u origin master

参考博文:https://www.cnblogs.com/longshiyVip/p/5642360.html

4.远程操作

每次提交,git 将每个版本串成一条时间线,一条时间线就是一个分支.
Head 指向当前作用的分支,如果没有新建分支,即为指向master分支。

4.1 git checkout -b 切换分支1

$ git checkout -b dev
Switched to a new branch ‘dev’

git checkout命令加上-b参数表示创建并切换到新的分支上,相当于以下两条命令:

$ git branch dev
$ git checkout dev
Switched to branch ‘dev’

4.2 git branch 查看分支

$ git branch

  • dev
    master

4.3 git merge 合并分支

4.3.1 step1:切换成主分支

git checkout master

4.3.2 step2:合并分支

(将指定分支(dev)合并到当前分支(master))

git merge dev

4.3.3 step3:删除分支

合并完可以选择删除过多的分支(dev)

git branch -d dev

4.3.4 git merge --no-ff 带参数合并分支

一般情况下,Git会用Fast forward模式合并。但这种模式下,删除分支后,会丢掉分支信息。如果要禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。

git merge --no-ff -m “merge with no-ff” dev

因为合并且创建一个新的commit,所以加上-m参数,把commit描述写进去。

4.3.5 -D 强制删除没有合并的分支

git branch -D feature-vulcan

4.4 git switch 切换分支2

创建(-c参数)并切换到新的分支上

git switch -c dev

切换到已有分支

git switch master

4.5 解决冲突

两个分支上对同一个文件进行了修改,修改内容不一致,无法直接merge,需要手动解决冲突后再提交。
merge 的时候会显示冲突文件在哪里

CONFLICT (content): Merge conflict in readme.txt

打开对应的文件,会提示冲突内容,保留想留下的,去掉><=,再add,commit

<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> feature1

带参数的git log 可以查看分支合并情况

git log --graph --pretty=oneline --abbrev-commit

4.6 分支管理策略

1.master 分支需要保持稳定性,仅用来发布新版本,不能在上面干活;
2.每个人在各自的分支上干活,稳定时的往主分支中合并即可

4.7 创建bug分支

4.7.1 git stash

把当前工作现场存储起来,等之后恢复现场继续工作。运行完git stash 之后用git status来查看工作区就是干净的。

git stash

4.7.2 bug 修复工作流程

每个bug 都可以通过一个新的临时分支来修复,修复后合并分支,然后删除临时分支。
step1: 确定在哪个分支上修复bug, 就在该分支上创建临时分支
step2: 修复big文件, 提交文件add, commit
step3:切换回原分支,合并分支merge
step4: 删除bug 分支

4.7.3 git stash apply + git stash drop

step1: 恢复内容

git stash apply

step2: 删除stash里的内容

git stash drop

多个现场保护在stash 中,apply可以指定想要恢复的工作现场

$ git stash list
stash@{0}: WIP on dev: f52c633 add merge
$ git stash apply stash@{0}

4.7.4 git stash pop

同时完成恢复和删除

git stash pop

4.7.5 git stash list

git stash list可以查看被保护起来的现场的情况,git stash pop 保存

4.7.6 git cheery-pick 一键修复多分支bug

修复了一个分支上的一个bug之后,从这个分支创建出来的分支同样存在这样的bug 。修复同样的分支,不需要再操作一遍。只需要把刚刚在 4.7.2 step 2 中的commit 所做的修改复制到copy 分支中。
step1: 切换到需要修复的copy 分支
step2: 复制修复修改

git cherry-pick 版本号

此处会创建一个新的的commit.

注:整个修复过程可以选择任意一个待修复的分支做修复,然后在其他分支上cherry-pick 该修复

4.8 创建 feature 分支–新功能开发

在软件开发中,总需要开发新功能,需要跑一些实验性的代码。所以开发一个新功能的时候,应该创建一个feature 分支,在上面进行开发,合并,删除。

4.9 多人协作

4.9.1 git remote

查看远程分支,-v 可以查看抓取和推送权限

$ git remote
origin
$ git remote -v
origin git@github.com:michaelliao/learngit.git (fetch)
origin git@github.com:michaelliao/learngit.git (push) # 可以看到说明有推送权限

4.9.2 git push 推送特定分支

在工程开发中需要确定哪些分支需要推送,哪些分支不需要、

git push origin master # 推送master分支
git push origin dev # 推送dev 分支

4.9.3 git pull

将远程代码库的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

协同开发时,git push 时(其他小伙伴已经push 操作过),报错:

$ git push origin dev
To github.com:michaelliao/learngit.git
! [rejected] dev -> dev (non-fast-forward)
error: failed to push some refs to ‘git@github.com:michaelliao/learngit.git’
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: ‘git pull …’) before pushing again.
hint: See the ‘Note about fast-forwards’ in ‘git push --help’ for details.

解决:先用git pull 将远程仓库中的 dev 分支来回来,回自动在本地合并。很大的可能需要手动解决冲突,再push。

$ git pull
Auto-merging env.txt
CONFLICT (add/add): Merge conflict in env.txt
Automatic merge failed; fix conflicts and then commit the result.

4.10 rebase

(使git 提交历史变成一条干净的时间线)
git push:error: failed to push some refs to
git pull+ git status:Your branch is ahead of ‘origin/master’ by 3 commits.

git rebase

4.4 git fetch
将远程代码库的最新内容拉到本地,在检查拉到本地的内容以后决定是否合并到工作区的分支中。 (git merge需要自己操作么


廖雪峰老师博文学习笔记:https://www.liaoxuefeng.com/wiki/896043488029600/897884457270432

5.git push

git push origin HEAD:refs/for/master

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

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

相关文章

leetcode64 最小路径和

给定一个包含非负整数的 m x n 网格&#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 示例: 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总…

online游戏服务器架构--网络架构

启动&#xff1a;父进程启动&#xff1b;子进程启动&#xff1b;网络架构。 每个父进程携带N个子进程&#xff0c;子进程负责处理业务逻辑和其它数据&#xff0c;而父进程只是将客户端的请求路由到各个子进程&#xff0c;路由的策略非常简单&#xff0c;父进程将请求包按照轮流…

online游戏服务器架构—用户登录数据组织 .

sprite_t类型的数据结构是核心数据结构&#xff0c;每一个登录用户对应一个&#xff0c;它的初始化在用户登录的时候&#xff0c;此后一直到用户退出或者离线一直保存在系统内存当中&#xff0c;在此过程中该sprite_t数据结构被保存在两个哈希表当中&#xff0c;一个是以用户的…

leetcode300 最长上升子序列

经典题&#xff0c;不解释&#xff0c;可以看我之前文章。 普通dp public class Solution {public int lengthOfLIS(int[] nums) {if (nums.length 0) {return 0;}int[] dp new int[nums.length];dp[0] 1;int maxans 1;for (int i 1; i < dp.length; i) {int maxval …

Github(5)-开源开发-常见错误

使用github 托管代码简单使用教程--开源开发-常见错误5. github开源开发6. 报错log6.1 fatal: remote origin already exists.6.2 There is no tracking information for the current branch.6.标签管理廖雪峰老师博文学习笔记&#xff1a;https://www.liaoxuefeng.com/wiki/89…

online游戏服务器架构--数据库及事件相关 .

Online服务器的第三部分就是数据层&#xff0c;send_request_to_db开始了数据层的处理逻辑&#xff1a; int send_request_to_db(int cmd, sprite_t* p, int body_len, const void* body_buf, uint32_t id)&#xff1b; 在该函数里首先以懒惰的方式连接数据库服务器&#xff…

leecode5 最长回文子串

给定一个字符串 s&#xff0c;找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1&#xff1a; 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2&#xff1a; 输入: "cbbd" 输出: "bb"…

libxml解析xml文件的一些总结

libxml -- 解析 XML 文档XML 介绍&#xff1a;XML 和 DOMlibxml 介绍 数据类型 — xmlChar数据结构 创建 XML 文档解析 XML 文档修改 xml 文档Xpath — 处理大型 XML 文档libxml2 库函数要注意的函数读取 xml 文件xml 操作基本结构及其指针类型根节点相关函数 创建子节点相关函…

Linux(7)-正则表达式

正则表达式demo1:在某个文件中寻找命令seddemo2:寻找8位电话号码正则表达式&#xff1a;用来描述或者匹配某一系列符合某个句法队则的字符串或者单个字符串。最初正则表达式&#xff0c;出现在自动控制理论和形式化语言理论中。 Linux 中 find grep sed ls命令都支持正则表达式…

服务器端开发的一些建议

摘要: 本文作为游戏服务器端开发的基本大纲&#xff0c;是游戏实践开发中的总结。第一部分专业基础&#xff0c;用于指导招聘和实习考核&#xff0c; 第二部分游戏入门&#xff0c;讲述游戏服务器端开发的基本要点&#xff0c;第三部分服务端架构&#xff0c;介绍架构设计中的一…

leetcode63 不同路径II

一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为“Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为“Finish”&#xff09;。 现在考虑网格中有障碍物。那么从左上角到右下角将…

小谈Online-game服务器端设计(1、2)

谈这个话题之前&#xff0c;首先要让大家知道&#xff0c;什么是服务器。在网络游戏中&#xff0c;服务器所扮演的角色是同步&#xff0c;广播和服务器主动的一些行为&#xff0c;比如说天气&#xff0c;NPC AI之类的&#xff0c;之所以现在的很多网络游戏服务器都需要负担一些…

Linux(8)-Linux下的编程开发-C/C++、PHP、JAVA概述

Linux下的编程开发1.C/C语言开发环境的搭建2.PHP开发环境搭建3.JAVA开发环境搭建1.C/C语言开发环境的搭建 方式1:文本编辑器编译器&#xff08;gcc/g&#xff09; Ubuntu 下常用的文本编辑器&#xff1a; Gedit–语法高亮Vim–vi(无比强大无比难用)的改进。字符界面/图形界面…

leetcode55 跳跃游戏 秒杀所有答案

给定一个非负整数数组&#xff0c;你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步&#xff0c;从位置 0 到达 位置 1, 然后再从位置 …

小谈Online-game服务器端设计(3)

下面我想来谈谈关于服务器上NPC的设计以及NPC智能等一些方面涉及到的问题。首先&#xff0c;我们需要知道什么是NPC&#xff0c;NPC需要做什么。NPC的全称是&#xff08;Non-Player Character&#xff09;&#xff0c;很显然&#xff0c;他是一个character&#xff0c;但不是玩…

小谈Online-game服务器端设计(4)

在这一章节&#xff0c;我想谈谈关于服务器端的脚本的相关设计。因为在上一章节里面&#xff0c;谈NPC智能相关的时候已经接触到一些脚本相关的东东了。还是先来谈谈脚本的作用吧。   在基于编译的服务器端程序中&#xff0c;是无法在程序的运行过程中构建一些东西的&#xf…

leetcode45 跳跃游戏II 秒杀所有答案

给定一个非负整数数组&#xff0c;你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 示例: 输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 …

MachineLearning(7)-决策树基础+sklearn.DecisionTreeClassifier简单实践

sklearn.DecisionTreeClassifier决策树简单使用1.决策树算法基础2.sklearn.DecisionTreeClassifier简单实践2.1 决策树类2.3 决策树构建2.3.1全数据集拟合&#xff0c;决策树可视化2.3.2交叉验证实验2.3.3超参数搜索2.3.4模型保存与导入2.3.5固定随机数种子参考资料1.决策树算法…

游戏服务器体系结构

本文描述了一个我所设计的游戏服务器体系结构,其目的是实现游戏服务器的动态负载平衡,将对象从繁忙的服务器转移到相对空闲的服务器中.设计并没有经过具体的测试与验证,仅仅是将自己目前的一些想法记录下来.随着新构思的出现,可能会有所变化. 以下是服务器的逻辑视图,其中忽略…

游戏服务器架构探讨

要描述一项技术或是一个行业&#xff0c;一般都会从其最古老的历史开始说起&#xff0c;我本也想按着这个套路走&#xff0c;无奈本人乃一八零后小辈&#xff0c;没有经历过那些苦涩的却令人羡慕的单机游戏开发&#xff0c;也没有响当当的拿的出手的优秀作品&#xff0c;所以也…