git将本地代码推送到远程分支

1.git原理

在这里插入图片描述

1、工作区:就是你的本地文件夹,写的代码文件存在这个文件夹中
2、暂存区:就是同通过git add将本地写好的文件添加到暂存区
3、主分支:git commit命令将暂存区的 文件提交到主分支上

2.添加本地代码

git add <file-name>

3.提交代码描述

git commit -m "add my code to new branchB" #添加描述 -mark

4.推送代码到远程分支

已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得

git remote add origin git@github.com:michaelliao/learngit.git #添加远程仓库
git push -u origin master #初始化推送
git push origin master #提交主分支

5.创建分支

一般来说通过创建的分支,进行文件的添加和提交之后不会进行push,而是将分支进行合并之后,是然后删除分支,最后push master分支到github中

git branch #查看分支
git checkout -b <branchname> #创建分支并切换到分支目录 -build
git add <file-name> #以分支的身份提交文件到暂存区
git push origin <branch name> #提交分支

git checkout -d <branchname> #删除分支 -delete
git branch -d <branchname> #删除分支 -delete

6.合并分支

git checkout master #切换回到主分支
git merge <branchname> #合并分支到主分支
Git鼓励大量使用分支:指令
查看分支:git branch
创建分支:git branch
切换分支:git checkout 或者git switch
创建+切换分支:git checkout -b 或者git switch -c
合并某分支到当前分支:git merge
删除分支:git branch -d

7.撤销

  • 1、Git Reset
    git reset 通过把分支记录回退几个提交记录来实现撤销改动。你可以将这想象成“改写历史”。git reset 向上移动分支,原来指向的提交记录就跟从来没有提交过一样。

在这里插入图片描述

git reset HEAD~1

漂亮! Git 把 master 分支移回到 C1;现在我们的本地代码库根本就不知道有 C2 这个提交了。

(译者注:在reset后, C2 所做的变更还在,但是处于未加入暂存区状态。)

  • 2、Git Revert
    虽然在你的本地分支中使用 git reset 很方便,但是这种“改写历史”的方法对大家一起使用的远程分支是无效的哦!
    为了撤销更改并分享给别人,我们需要使用 git revert。来看演示:
    在这里插入图片描述
    在这里插入图片描述
git revert HEAD

奇怪!在我们要撤销的提交记录后面居然多了一个新提交!这是因为新提交记录 C2’ 引入了更改 —— 这些更改刚好是用来撤销 C2 这个提交的。也就是说 C2’ 的状态与 C1 是相同的。

revert 之后就可以把你的更改推送到远程仓库与别人分享啦。

8.rebase合并commit

在进行代码review时,会导致代码中间提交了很多commit,在进行merge后,以后查看代码的提交记录的时候会有很多commit记录,很难查看当时更改代码是在哪一次的commit修改的,所以需要对提交的多个commit进行合并,解决查看历史的提交记录多切杂的问题

git rebase -i HEAD~12

将最近提交了12个版本进行合并,合并到第一次提交commit的代码上面
第一行(即第一次commit版本)选择pickup,其他行选择f即可,就可以将最新的版本合并到第一次的版本上面。(合并的目的就是将最新的代码合并到第一次commit的版本上面去,所以保留的是第一个版本的代码==)
在进行合并的时候,会说confict冲突,此时保存你觉得对的代码,将HEAD=====这种标志删除即可。

删除完

git add ***
git rebase --continue

不想renabase的时候直接abort就回到了rebase之前的版本了

git rebase --abort #终止rebase,回到原来最新的commit

如果当前分支与master分支相差较大,需要跟master进行对齐

git checkout master
git pull
git checkout branch
git rebase master 
# fix conflict if has conflict
# git add conflict_fixed file
# git rebase --continue
git push origin branch -f

9.reset版本回退

场景:你对代码进行了优化,提交了一版本代码,但是在进行review时,大家认为你虽然优化了代码运行速度,但是业务场景提升效果不明显, 没有必要进。所以你需要将代码回退到原来的版本进行继续更新

git log          #查看你最近提交的版本,比如当前版本1111,上个版本2222
git reset 2222          #回退到2222版本
git status               #查看当前1111版本的更改
git checkout filename    #将该文件更改的部分进行复原

10.拉取分支

假设在master上新开了一个分支名字叫做test(git checkout -b test)
此时你想在家里继续开发这个分支,就需要将这个分支拉到家里的电脑

git clone -b test http://asdf.git

11.配置

git config --global user.name "dc"
git config --global user.email "dc@gmail.com"
git config -l
git config --global --replace-all user.name #修改配置


1 局部仓库变量
添加
git config remote.origin.url "https://..."

2 全局变量(不建议设置)
添加
git config --global remote.origin.url "https://..."

3.删除
git remote rm origin
git config --global --unset remote.origin.url
  • 44
    点赞
  • 317
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值