git 创建分支并推送到远程分支

git 创建分支并推送到远程分支,第1张

现在我在master分支上,工作目标是干净的,也没有需要 commit 的:

新建一个本地分支:

查看一下现在的分支状态:

星号()表示当前所在分支。现在的状态是成功创建的新的分支并且已经切换到新分支上。

把新建的本地分支push到远程服务器,远程分支与本地分支同名(当然可以随意起名):

使用 git branch -a 查看所有分支,会看到 remotes/origin/dev10 这个远程分支,说明新建远程分支成功。

我比较喜欢的简单方式,推送一个空分支到远程分支,其实就相当于删除远程分支:

也可以使用:

这两种方式都可以删除指定的远程分支

在记录一次:删除本地分支,并重新推送远程分支

$ git branch
master
release

$ git status

新建远程分支
新建一个本地分支:

$ git checkout -b localbranch

查看一下现在的分支状态:

$ git branch

星号()表示当前所在分支。现在的状态是成功创建的新的分支并且已经切换到新分支上。

把新建的本地分支push到远程服务器,远程分支与本地分支同名(当然可以随意起名):

$ git push origin localbranch:localbranch

使用 git branch -a 查看所有分支,会看到 remotes/origin/localbranch 这个远程分支,说明新建远程分支成功。

删除远程分支
我比较喜欢的简单方式,推送一个空分支到远程分支,其实就相当于删除远程分支:

$ git push origin :localbranch
也可以使用:

$ git push origin --delete localbranch
这两种方式都可以删除指定的远程分支

git使用文档 - git创建远程分支
>背景:当我们需要版本管理但还没有远程服务器,可以先在本地做初始化和本地提交。

后期有服务器地址了就可以对已有的仓库添加地址。

//例子:git remote add origin ssh://git@xxbaiducom/ios/abcgit

如果直接使用设置url会报错:

把 url 换成你的地址,ssh协议或>前言:发现新来小伙伴,对git以及repo命令还不是特别熟悉,因此对git及repo最基本命令做了一下小结:

Repo

repo init -u  ssh://git@gitlabmanifestgit  -b [分支]

repo sync

repo status

repo branch

repo manifest 

repo diff

repo help

查看

1 、查看本地分支

git branch

2 、查看远程分支

git branch -r

3 、查看所有分支

git branch -a

4 、查看状态

git status

5 、查看提交日志

git log

创建

本地创建新的分支

git branch [branch name]

切换到新的分支

git checkout [branch name]

创建 + 切换分支

git checkout -b [branch name]

删除

删除本地分支

git branch -d [branch name]

删除 github 远程分支  

git push origin :[branch name]

推送

将新分支推送到 github

git push origin [branch name]

提交分支数据到远程服务器

git push origin <local_branch_name>:<remote_branch_name>

例如:

git push origin 20120120806:20120120806

远程分支和本地分支需要区分好,所以,在从服务器上拉取特定分支的时候,需要指定远程分支的名字。

git checkout --track origin/20120120806

注意该命令由于带有--track参数,所以要求git164以上!这样git会自动切换到分支。

分支合并 merge

git merge feature/login

git merge  damo_release_201020_feedingRank

tag

git tag 202

git push --tags

1、拉取远端指定的分支(本地不存在)

git fetch

git checkout -b 本地分支名 origin/远程分支名

2、创建本地分支,并推送到远端

(二) 推送本地分支到远程仓库

git push --set-upstream origin 分支名
本地分支推送到远端:

repo forall -c git push ika damo_:damo_

本地分支与远端建立关联跟踪:

repo forall -c git branch --set-upstream-to=module/damo_  damo_

设置本地分支与远程分支的追踪:

git branch --set-upstream-to=origin/远程分支名 本地分支名

基于远端分支创建分支:

1、先fetch 远端的 ila_210120

repo forall -c git fetch ila ila_210120

2、基于远端的ila_210120创建  damo_ila_210120分支

 repo forall -c git checkout -b damo_ila_210120 ila/ila_210120

cherry-pick :(某一个 commit )

git cherry-pick f8857cbb08519b10981b0e2df999363ebfe8b6d3

push 推送到远端

git push ila damo_ila_210120_review

强推:

git push --force ila 201140_newGuide_oneCommit

合成一个 commit 流程 :

1、创建一个新分支:

2、reset到第一个commit:

3、重新commit:

reset 区别:

repo forall -c git reset --hard

repo forall -c git reset --soft f8857cbb08519b10981b0e2df999363ebfe8b6d3



1、 >

git拉取代码到本地的方法是:

打开git命令窗口,输入命令git clone github仓库地址,然后回车即可拉取代码到本地仓库。

在实际项目开发过程中,往往是已经存在远程项目了,我们定义的需求是只需要简单的 *** 作git,能够上传和下拉最新代码。

Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。

Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper。

Git的功能特性:

从一般开发者的角度来看,git有以下功能:

1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。

2、在自己的机器上根据不同的开发目的,创建分支,修改代码。

3、在单机上自己创建的分支上提交代码。

4、在单机上合并分支。

5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。

6、生成补丁(patch),把补丁发送给主开发者。

7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。

8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。

从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:

1、查看邮件或者通过其它方式查看一般开发者的提交状态。

2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。

3、向公共服务器提交结果,然后通知所有开发人员。

git push 到远程仓库时候

之后出现修改找不到的问题

又出现文件修改颠倒问题。

原理:

当执行git add “file”添加到暂存器,然后执行git
commit提交到本地库的时候,git需要在commit的时候在日志中写入一个唯一标识提交的SHA-1值,即是Change-Id值 git

commit时会调用commit_msg脚本检查提交信息,以便在git

push的时候能正常推送到远程库。此时调用默认目录下的commit_msg钩子脚本,默认目录为“git/hooks/commit_msg”

如果此目录下无commit_msg脚本则commit时提交日志中无ChangeId信息,则在git

push的时候出错,无法正常吧改动上传到远程服务器
    如果 git log --graph 看不到commit的话

可以 git reflog  查看过去的提交。找到那个commit ID 

再用 git reset --hard ID 回到那个版本。 

    之后如果push 提示一个 no change-ID问题

 解决方法1:

方法一:
1>复制Change-Id:Ifbea87a6358d55a189528a5f501492c37bdfec21

2>执行gitdir=$(gitrev-parse--git-dir);scp-p-P29418HostName@1921687711:hooks/commit-msg${gitdir}/hooks/  从服务器拷贝commit-msg脚本到git/hooks/目录下

3>执行gitcommit--amend重新修复提交,把第一步中的Change-Id:Ifbea87a6358d55a189528a5f501492c37bdfec21黏贴到提交日志的下一行。

4>重新执行gitpush推送本地改动到远程服务器
方法二:

如果上面你的git commit --amend 进入vim出现一个e325

目前我还没解决,这样只能找到以前的一个版本了。比较早回退到那里 。

git reset --soft id

git stash 

git pull

git stash pop

git gui

进入gui 再把修改的文件重新commit一下

最后git push。

用时候在用git pull命令的时候不管用,拉取不下来远程分支上的代码,是因为本地分支和远程分支没有建立关联。

处理这种问题很简单就按照提示执行命令即可:git branch --set-upstream-to=origin/fixbug-298 fixbug-298

如果想保证这种情况不出现就在建立新分支推送到远程分支上的时候加上-u参数即可

git push -u origin feature-v

创建本地仓库并同步到远程
git是非常强大的版本管理工具。接下来的时间里,我就和大家絮叨絮叨git的入门:如何在本地创建一个git仓库,并把自己的本地代码同步到远程。此教程是在mac上 *** 作的,如果您的系统是Linux,那么 *** 作方法相同;如果您的系统是windows,那么,只需要把git的bash窗口调出来,以后的过程也都与Linux相同。
一、首先,您需要安装git,此步就忽略了,自行安装即可。

二、假设你目前还没有创建一个工作目录,那么,先创建一个目录吧,就叫StudyGit。

三、现在的StudyGit目录还只是一个本地目录,和git没有任何关联,那么,我们怎么样才能把这个目录和git关联起来呢?只需要进入StudyGit目录,运行如下命令:

yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$ git init
Initialized empty Git repository in /Users/yanyaozhen/Coding/Practice/StudyGit/git/

提示已经说明我们初始化了一个空的本地git仓库。如果你查看StudyGit下的所有文件时,会发现一个git 的隐藏文件,这个文件非常重要,版本的控制就靠它了。

四、接下来我们来看一个基本可以说是用的最频繁的一个命令:

yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$ git status

五、现在让我们来创建一个文件吧。我们创建一个叫“atxt”的文本文件,并且内容如下

anyaozhen@macbookpro:~/Coding/Practice/StudyGit$ cat atxt


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/12973104.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-29
下一篇2025-08-29

发表评论

登录后才能评论

评论列表(0条)

    保存