git远程分支代码拉取

article/2025/8/27 10:11:41

1.远程拉取gitlab 工程分支,并在本地建立分支

具体过程

  • 新建一个空文件
  • 初始化 git init
  • 自己要与origin master建立连接(下划线远程仓库链接)
    git remote add origin http://192.168.9.10:8888/root/game-of-life.git
  • 把远程分支拉到本地(game-of-live-first_branch为远程仓库的分支名)
    git fetch origin game-of-live-first_branch
  • 在本地创建分支game-of-live-first_branch并切换到该分支
    git checkout -b game-of-live-first_branch origin/game-of-live-first_branch
  • 把game-of-live-first_branch远程分支上的内容都拉取到本地
    git pull origin game-of-live-first_branch

2.修改分支的内容并上传给远程分支

3.如果想在linux中拉取远程分支代码

[root@localhost rollBack]# git init
Initialized empty Git repository in /test/rollBack/.git/
[root@localhost rollBack]# git remote add origin git@192.168.9.10:root/game-of-life.git
[root@localhost rollBack]# git fetch origin game-of-live-first_branch
remote: Enumerating objects: 1770, done.
remote: Counting objects: 100% (1770/1770), done.
remote: Compressing objects: 100% (582/582), done.
remote: Total 1770 (delta 1112), reused 1770 (delta 1112)
Receiving objects: 100% (1770/1770), 15.00 MiB | 28.20 MiB/s, done.
Resolving deltas: 100% (1112/1112), done.
From 192.168.9.10:root/game-of-life

  • branch game-of-live-first_branch -> FETCH_HEAD
    [root@localhost rollBack]# git pull origin game-of-live-first_branch
    From 192.168.9.10:root/game-of-life
  • branch game-of-live-first_branch -> FETCH_HEAD

4.git使用

4.1.源码安装git
[root@localhost ~]# yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
[root@localhost ~]# yum -y install perl-ExtUtils-MakeMaker package
[root@localhost ~]# tar xvf git-2.9.5 -C /usr/src/
[root@localhost ~]# cd /usr/src/git-2.9.5
[root@localhost git-2.9.5]# make configure
GIT_VERSION = 2.9.5
GEN configure
[root@localhost git-2.9.5]# ./configure --prefix=/usr/local/
[root@localhost git-2.9.5]# make && make install


4.2.配置git

[root@localhost git-2.9.5]# git config --global user.name "yunjisuan" #配置git使用用户
[root@localhost git-2.9.5]# git config --global user.email "102110504@qq.com" #配置git使用邮箱
[root@localhost git-2.9.5]# git config --global color.ui true #语法高亮
[root@localhost git-2.9.5]# git config --list 查看全局配置br/>user.name=yunjisuan
user.email=102110504@qq.com
color.ui=true

查看生成的配置文件并添加新模块 #在root下

[root@localhost ~] # cat .gitconfig 
[user]
name = clsn
email = admin@znix.top
[color]
ui = true

[root@localhost ~]# cat .gitconfig 
[user]
name = git
email = 102110504@qq.com
[color]
ui = true
[recevice] #添加此模块
denyCurrentBranch = ignore

获得配置命令的手册 #三种方法

git help <verb>
git <verb> --help
man git-<verb>


4.3.配置ssh,增加rsa认证

修改配置文件,增加下面内容
[root@localhost ~]# vi /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes

重启
[root@localhost ~]# systemctl restart sshd


4.4.获取git仓库(初始化仓库)

[root@localhost ~]# mkdir /git_data #创建目录
[root@localhost ~]# cd /git_data/
[root@localhost git_data]# git init #初始化目录
Initialized empty Git repository in /git_data/.git/
[root@localhost git_data]# git status #查看工作区状态
On branch master
Initial commit
nothing to commit (create/copy files and use "git add" to track)

添加并提交文件
[root@localhost git]# touch README
[root@localhost git]# echo "please read first" >> README
[root@localhost git]# git add *
[root@localhost git]# git commit -m "first commit"


5.git仓库的管理

5.1向git内增加文件:

创建文件
[root@localhost git_data]# touch README
[root@localhost git_data]# ls
README
[root@localhost git_data]# git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
README
nothing added to commit but untracked files present (use "git add" to track)
[root@localhost git_data]# git add ./ #添加文件跟踪
[root@localhost git_data]# git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README
[root@localhost git_data]# tree .git 
.git
├── branches
├── config
├── description
├── HEAD
├── hooks
│ ├── applypatch-msg.sample
│ ├── commit-msg.sample
│ ├── post-update.sample
│ ├── pre-applypatch.sample
│ ├── pre-commit.sample
│ ├── prepare-commit-msg.sample
│ ├── pre-push.sample
│ ├── pre-rebase.sample
│ └── update.sample
├── index
├── info
│ └── exclude
├── objects
│ ├── e6
│ │ └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391 #查看隐藏目录下增加了一条文件
│ ├── info
│ └── pack
└── refs
├── heads
└── tags
10 directories, 15 files
[root@localhost git_data]# git commit -m 'first commit' #由工作区提交到本地仓库
[master (root-commit) 621be41] first commit
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 README
[root@localhost git_data]# git status #查看git的状态
On branch master
nothing to commit, working tree clean
[root@localhost git_data]# tree .git/ #提交后的git目录状态
.git/
├── branches
├── COMMIT_EDITMSG
├── config
├── description
├── HEAD
├── hooks
│ ├── applypatch-msg.sample
│ ├── commit-msg.sample
│ ├── post-update.sample
│ ├── pre-applypatch.sample
│ ├── pre-commit.sample
│ ├── prepare-commit-msg.sample
│ ├── pre-push.sample
│ ├── pre-rebase.sample
│ └── update.sample
├── index
├── info
│ └── exclude
├── logs
│ ├── HEAD
│ └── refs
│ └── heads
│ └── master
├── objects
│ ├── 54
│ │ └── 3b9bebdc6bd5c4b22136034a95dd097a57d3dd
│ ├── 62
│ │ └── 1be41481cd4dd65b58d1400173228125cdeb5b
│ ├── e6
│ │ └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391
│ ├── info
│ └── pack
└── refs
├── heads
│ └── master
└── tags
15 directories, 21 files
总结说:
git add 
添加到暂存区域
git commit 提交git仓库 -m 后面接上注释信息,内容关于本次提交的说明,方便自己或他人查看


5.2删除git内文件

1) 没有添加到暂存区的数据直接rm删除即可。
2) 已经添加到暂存区数据:
git rm --cached database 
#→将文件从git暂存区域的追踪列表移除(并不会删除当前工作目录内的数据文件)
git rm -f database
#→将文件数据从git暂存区和工作目录一起删除


5.3改(重命名数据)

1)没有添加到暂存区的数据直接mv/rename改名即可。
2)已经添加到暂存区数据:
git mv README NOTICE #这个改的时候工作目录里的文件名字也改了


5.4查 (查看历史记录)
• git log #→查看提交历史记录
• git log -2 #→查看最近几条记录
• git log -p -1 #→-p显示每次提交的内容差异,例如仅查看最近一次差异
• git log --stat -2 #→--stat简要显示最近两次,数据增改行数,这样能够看到提交中修改过的内容,对文件添加或移动的行数,并在最后列出所有增减行的概要信息
• git log --pretty=oneline #→--pretty根据不同的格式展示提交的历史信息
• git log --pretty=fuller -2 #→以更详细的模式输出提交的历史记录
• git log --pretty=fomat:"%h %cn" #→查看当前所有提交记录的简短SHA-1哈希字串与提交着的姓名。
使用format参数来指定具体的输出格式
格式 说明
%s 提交说明
%cd 提交日期
%an 作者的名字
%cn 提交者的姓名
%ce 提交者的电子邮件
%H 提交对象的完整SHA-1哈希字串
%h 提交对象的简短SHA-1哈希字串
%T 树对象的完整SHA-1哈希字串
%t 树对象的简短SHA-1哈希字串
%P 父对象的完整SHA-1哈希字串
%p 父对象的简短SHA-1哈希字串
%ad 作者的修订时间


5.5还原历史数据

Git服务程序中有一个叫做HEAD的版本指针,当用户申请还原数据时,其实就是将HEAD指针指向到某个特定的提交版本,但是因为Git是分布式版本控制系统,为了避免历史记录冲突,故使用了SHA-1计算出十六进制的哈希字串来区分每个提交版本,另外默认的HEAD版本指针会指向到最近的一次提交版本记录,而上一个提交版本会叫HEAD^,上上一个版本则会叫做HEAD^^,当然一般会用HEAD~5来表示往上数第五个提交版本。
git reset --hard hash :
• git reset --hard HEAD^ #→还原历史提交版本上一次
• git reset --hard 3de15d4 #→找到历史还原点的SHA-1值后,就可以还原(值不写全,系统会自动匹配)


5.6还原未来数据

什么是未来数据?就是你还原到历史数据了,但是你后悔了,想撤销更改,但是git log已经找不到这个版本了。
git reflog #→查看未来历史更新点
[root@localhost git_data]# git reflog
b6a6e89 HEAD@{0}: reset: moving to HEAD^
519bf0d HEAD@{1}: commit: third commit
b6a6e89 HEAD@{2}: commit: second commit
621be41 HEAD@{3}: commit (initial): first commit
[root@localhost git_data]# git reset --hard 519b #在删除third commit情况下返回third commit
HEAD is now at 519bf0d third commit


5.7标签使用

前面回滚使用的是一串字符串,又长又难记。
git tag v1.0 #→当前提交内容打一个标签(方便快速回滚),每次提交都可以打个tag。
git tag #→查看当前所有的标签
git show v1.0 #→查看当前1.0版本的详细信息
git tag v1.2 -m "version 1.2 release is test" #→创建带有说明的标签,-a指定标签名字,-m指定说明文字
git tag -d v1.0 #→我们为同一个提交版本设置了两次标签,删除之前的v1.0
[root@localhost git_data]# git reset --hard HEAD^ #还原历史数据
HEAD is now at b6a6e89 second commit
[root@localhost git_data]# git reset --hard v1.0 #利用标签回滚
HEAD is now at 519bf0d third commit


5.8对比数据

git diff可以对比当前文件与仓库已保存文件的区别,知道了对README作了什么修改后,再把它提交到仓库就放⼼多了。
git diff README
[root@localhost git_data]# echo 222 >> README 
[root@localhost git_data]# git diff README 
diff --git a/README b/README
index 2bbe845..56c43c1 100644
--- a/README
+++ b/README
@@ -1,2 +1,3 @@
111
111
+222


6..分支结构

6.1 增加分支
git branch 分支名称


6.2分支切换
[root@localhost git_data]# git branch #查看分支
linux

  • master
    [root@localhost git_data]# git checkout linux #切换到分支 'linux'
    M README
    Switched to branch 'linux'
    [root@localhost git_data]# git branch
  • linux
    master

6.3在linux分支进行修改

例:就是切换到分支后进行普通操作

echo "clsn in linux" >> README


6.4合并代码

合并Linux上的代码到master上

git merge linux


6.5合并失败解决

模拟冲突,在文件的同一行做不同修改

在master 分支进行修改
[root@gitlab git_data]# cat README 
2017年11月30日
[root@gitlab git_data]# echo "clsn in master">> README 
[root@gitlab git_data]# git commit -a -m "clsn 2017年11月30日 09点20分 "
[master 7ab71d4] clsn 2017年11月30日 09点20分
1 file changed, 1 insertion(+)

切换到linux分支
[root@gitlab git_data]# git checkout linux 
[root@gitlab git_data]# cat README 
2017年11月30日
[root@gitlab git_data]# echo "clsn in linux" >> README 
[root@gitlab git_data]# git commit -a -m "2017年11月30日 03"
[linux 20f1a13] 2017年11月30日 03
1 file changed, 1 insertion(+)

回到master分区,进行合并,出现冲突
[root@gitlab git_data]# git checkout master 
切换到分支 'master'
[root@gitlab git_data]# git merge linux

冲突(内容):合并冲突于 README
自动合并失败,修正冲突然后提交修正的结果。

解决冲突
[root@gitlab git_data]# vim README 
2017年11月30日
clsn in master
clsn in linux
#手工解决冲突
[root@gitlab git_data]# git commit -a -m "2017年11月30日 03"
[master b6a097f] 2017年11月30日 03


6.6删除分支

因为之前已经合并了linux分支,所以现在看到它在列表中。

在这个列表中分支名字前没有 * 号的分支通常可以使用 git branch -d 删除掉;你已经将它们的工作整合到了另一个分支,所以并不会失去任何东西。
git branch --no-merged #查看所有包含未合并工作的分支

git branch -d 分支name


7.服务器命令总结

服务器上的管理命令

   mkdir:                                  //XX (创建一个空目录 XX指目录名)

  pwd: // 显示当前目录的路径。
  git init //把当前的目录变成可以管理的git仓库,生成隐藏.git文件。
  git add XX //把xx文件添加到暂存区去。
  git commit –m “XX” //提交文件 –m 后面的是注释。
  git status //查看仓库状态
  git diff XX // 查看XX文件修改了那些内容
  git log //查看历史记录
  git reset --hard HEAD^ //或者 git reset --hard HEAD~ 回退到上一个版本(如果想回退到100个版本,使用git reset –hard HEAD~100 )
  cat XX //查看XX文件内容
  git reflog //查看历史记录的版本号id
  git checkout -- XX //把XX文件在工作区的修改全部撤销。
  git rm XX //删除XX文件
  git checkout –b dev //创建dev分支 并切换到dev分支上
  git branch //查看当前所有的分支
  git checkout master // 切换回master分支
  git merge dev //在当前的分支上合并dev分支
  git branch –d dev //删除dev分支
  git branch name //创建分支
  git stash //把当前的工作隐藏起来 等以后恢复现场后继续工作
  git stash list //查看所有被隐藏的文件列表
  git stash apply //恢复被隐藏的文件,但是内容不删除
  git stash drop //删除文件
  git stash pop //恢复文件的同时 也删除文件
  git remote //查看远程库的信息
  git remote –v //查看远程库的详细信息
  
git remote add origin GitHub: Where the world builds software · GitHub-- //关联一个远程库 --为路径
  git push –u origin master //(第一次要用-u 以后不需要)把当前master分支推送到远程库
  git push origin master //Git会把master分支推送到远程库对应的远程分支上
  git clone https://github.com/--- // 从远程库中克隆 --为路径

   远程仓库相关命令检出仓库:       $ git clone 查看远程仓库:$ git remote -v添加远程仓库:$ git remote add 删除远程仓库:$ git remote rm 修改远程仓库:$ git remote set-url --push 拉取远程仓库:$ git pull 推送远程仓库:$ git push *如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,如下:$git push origin test:master         // 提交本地test分支作为远程的master分支$git push origin test:test              // 提交本地test分支作为远程的test分支

http://chatgpt.dhexx.cn/article/hdV2mM2N.shtml

相关文章

JAVA语言(Git拉取远程分支(dev)到本地)

步骤&#xff1a; 1、新建一个空文件&#xff0c;文件名为yrc_20220126 2.在当前文件夹单机鼠标右键&#xff0c;效果如下图&#xff1a; 3.点击弹出窗口的&#xff1a;Git Bash Here 4、初始化 git init5、自己要与origin master建立连接&#xff08;下划线为远程仓库链接…

idea把git远程分支拉取到本地

在开发过程中&#xff0c;我们有时候会碰到一种情况&#xff1a; 本地分支只有 development&#xff0c;远程分支有development,release,master这三个分支&#xff0c;那么我们本地要怎么切换到master分支呢&#xff1f; 一&#xff1a;正常来说&#xff0c;直接在idea的右下角…

git拉取远程指定分支到本地(本地分支映射到远程分支)

git拉取远程分支到本地 step1:新建一个空文件夹&#xff0c;名wuliu step2:初始化git git initstep3:与远程仓库建立连接 git remote add origin http://git.xxx.com:10001/root/vue-upms.git![在这里插入图片描述](https://img-blog.csdnimg.cn/20191008132344130.png st…

Git拉取远程分支到本地,修改并同步

Git拉取远程分支到本地 本地新建一个空白文件夹folder&#xff1b;进入folder目录&#xff0c;打开git bash&#xff0c;用命令行初始化git仓库&#xff1b; $ git init与远程仓库建立连接&#xff1b; // http://xxx...该网址为远程仓库Game的ip地址&#xff0c;可在远程仓…

从Git上如何拉取远程分支(dev)到本地?

步骤 1. 首先新建一个空的文件&#xff0c;文件名自定义2. 在当前文件夹下鼠标右击打开Git Bash here3. 打开后进行初始化 &#xff1a; git init4. 与origin master建立一个连接5. 把远程分支拉到本地6. 在本地创建分支dev并且进行切换到该分支7. 把某个分支上的内容进行拉取到…

【git之路】拉取远程分支到本地

文章目录 1、新建一个空文件夹2、初始化3、自己要与origin master建立连接&#xff08;下划线为远程仓库链接&#xff09;4、把远程分支拉到本地5、在本地创建分支dev并切换到该分支6、把某个分支上的内容都拉取到本地检查下&#xff0c;就结束啦 1、新建一个空文件夹 取名mas…

git 拉取远程分支到本地及本地切换分支

拉取远程分支到本地及本地切换分支 涉及的操作内容1.远程代码拉取到本地 - 2.本地合并其它分支代码 - 3.本地代码提交到远程指定仓库 - 4.本地切换分支 1.远程代码拉取到本地 首先确定要切换分支&#xff0c;查看当前本地及远程所有分支 git branch -a红色为远程分支&#…

git拉取远程分支到本地

**步骤&#xff1a; 1、新建一个空文件&#xff0c;文件名为hhhh 2、初始化 git init 3、自己要与origin master建立连接&#xff08;下划线为远程仓库链接&#xff09; git remote add origin gitgithub.com:XXXX/nothing2.git 远程仓库链接在github这里&#xff0c;如下…

git 拉取远程分支到本地(最简单方式)

步骤&#xff1a; 接下来我们进入正题&#xff1a; 一、新建一个空文件&#xff0c;文件名为hash------(名字随便取&#xff09; 二、初始化------git init 注意–(初始化完成之后记得检查文件夹是否有**(.git文件夹&#xff09;**-----有些文件夹打开没有大多数是隐藏了&am…

git拉取远程指定分支到本地

1.通过git clone的方式 只克隆单一分支&#xff1a; git clone -b <branch> --single-branch <url>注意&#xff1a; git clone -b <branch> <url>这条克隆的指令与全克隆的作用一致。 2.通过本地分支映射到远程分支的方式 a.与远程仓库建立连接 …

git 拉取远程分支到本地

目录&#xff1a; ***&#xff01;本小作者&#xff0c;是将终端和Git的可视化插件结合使用&#xff0c;刚接触的可以自习看一下&#xff0c;内容简单&#xff0c;避免弯路&#xff01;***一&#xff0c;简单了解远程分支1&#xff0c;连接远程&#xff1a;2&#xff0c;提交&a…

socket协议解读

前言 Socket的使用在 Android网络编程中非常重要今天我将带大家全面了解 Socket 及 其使用方法 目录 1.网络基础 1.1 计算机网络分层 计算机网络分为五层&#xff1a;物理层、数据链路层、网络层、运输层、应用层 其中&#xff1a; 网络层&#xff1a;负责根据IP找到目的地址的…

UDP/IP传输协议

一、传输层最重要的协议就是TCP和UDP。TCP协议复杂&#xff0c;是面向连接的传输协议且传输可靠&#xff1b;而UDP协议简单&#xff0c;是面向无连接的传输协议&#xff0c;传输速度快但传输不可靠。可以将UDP协议看作IP协议暴露在传输层的一个接口。 UDP协议同样以数据报(dat…

基于TCP协议的Socket网络通信

前言 一. 什么是网络(了解七层网络模型)?二. 什么是TCP/UDP协议?三.什么是socket?定义 四.基于TCP协议的socket通信的实现步骤是怎样的&#xff1f;客户端的实现服务端的实现测试 一. 什么是网络(了解七层网络模型)? 按区域可分为&#xff1a; 局域网&#xff08;区域小&am…

socket、tcp/ip、http三者之间的区别和原理

网络七层模型 OSI 模型(Open System Interconnection model)是计算机和网络在世界范围内实现互联的标准框架。它将计算机网络体系结构划分为七层,每层都可以提供抽象良好的接口。 1、物理层&#xff1a;例如线路、无线电、光纤、信鸽 物理层负责最后将信息编码成电流脉冲或其…

简单理解socket协议

TCP/IP 要想理解socket首先得熟悉一下TCP/IP协议族&#xff0c; TCP/IP&#xff08;Transmission Control Protocol/Internet Protocol&#xff09;即传输控制协议/网间协议&#xff0c;定义了主机如何连入因特网及数据如何再它们之间传输的标准&#xff0c; 从字面意思来看T…

Http、TCP/IP协议与Socket之间的区别

HTTP协议&#xff1a;简单对象访问协议&#xff0c;对应于应用层 &#xff0c;HTTP协议是基于TCP连接的 tcp协议&#xff1a; 对应于传输层 ip协议&#xff1a; 对应于网络层 TCP/IP是传输层协议&#xff0c;主要解决数据如何在网络中传输&#xff1b;而HTTP是应用层协…

简单理解Socket 协议

前几天和朋友聊天&#xff0c;朋友问我怎么最近不写博客了&#xff0c;一个是因为最近在忙着公司使用的一些控件的开发&#xff0c;浏览器兼容性搞死人&#xff1b;但主要是因为这段时间一直在看html5的东西&#xff0c;看到web socket时觉得很有意思&#xff0c;动手写几个dem…

车载以太网之SomeIP协议

车载以太网之SomeIP协议 1、SomeIP含义2、SomeIP通信协议3、SomeIP数据格式3.1 数据格式含义3.2 处理数据能力的要求 4、面向服务的协议4.1 Method4.2 Event(FF)4.3 Field4.4 Autosar接口说明 5、两个ECU间SomeIP数据的通讯过程6、SomeIP序列化6.1 序列化和反序列化过程6.2 序列…

深入理解 TCP/IP 协议栈,使用 Raw Socket

对于 TCP/IP 协议栈&#xff0c;我们或多或少都使用 Socket API 实现了一些小程序&#xff0c;甚至有一些朋友结合多路复用技术实现了一些简单的并发服务器。但是&#xff0c;对于以下问题&#xff0c;大家是否有清晰的答案呢&#xff1f; WireShark 的实现原理是什么&#xf…