Git基础概念03

推送到远程仓库

当想分享你的代码时,可以将其推送到远程仓库,命令格式:git push[remote-name] [branch-name]

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git push origin master

origin 是上面绑定的远程仓库的地址 ,master是本地仓库的分支
在这里插入图片描述
执行后出现用户输入账号和密码,前面因为仓库是开源仓库,又是下载操作,所以不需要输入账号和密码,此时是上传到仓库,所以需要验证需要输入远程仓库的账户和密码
验证成功后
跳出成功信息

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git push origin master
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (5/5), 566 bytes | 566.00 KiB/s, done.
Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/doreamen-ac/test01.git
   9f0ab69..c2a25de  master -> master

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$

进入远程仓库,刷新
会出现hello文件表示上传成功
在这里插入图片描述
在本地仓库修改文件之后,需要加入暂存区,之后提交到本地仓库,然后推送到远程仓库这样做实有一点麻烦
在这里插入图片描述
新建一个world文档

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        world.txt

nothing added to commit but untracked files present (use "git add" to track)

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git add world.txt


加入git

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git commit -a -m "world"
[master c44aa8d] world
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 world.txt


提交到本地仓库
这里的

git commit -a -m "sssssss"

命令表示可以跳过Modifed过程,直接提交到本地仓库,用于update时
但是此处用于新文件没有用到,但是可以保持这个习惯

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   hello.txt
        modified:   world.txt

no changes added to commit (use "git add" and/or "git commit -a")


修改两个文档,直接进行commit命令

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git commit -a -m "update"
[master 1e63530] update
 2 files changed, 2 insertions(+), 1 deletion(-)

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git status
On branch master
nothing to commit, working tree clean

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$

跳过modefied过程

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git push origin master


在这里插入图片描述
确认账号

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git push origin master
Enumerating objects: 9, done.
Counting objects: 100% (9/9), done.
Delta compression using up to 12 threads
Compressing objects: 100% (5/5), done.
Writing objects: 100% (7/7), 631 bytes | 631.00 KiB/s, done.
Total 7 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/doreamen-ac/test01.git
   c2a25de..1e63530  master -> master

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$

在这里插入图片描述
推送成功
可以看到,两个文档刚刚进行了修改
说明推送已经成功

Git 分支

几乎所有的版本控制系统都以某种形式支持分支

使用分支一位置妮克以把你的工作从开发主线上分离开来,以免影响开发主线

Git的master分支并不是一个特殊的分支,他跟其他分支没有区别

之所以几乎每一个仓库都有一个master分支是应为git init 命令默认创建它,并且大多是人都懒得改动它.

相关的分支命令

  1. 查看分支
  2. 创建分支
  3. 切换分支
  4. 推送至远程仓库分支(自己的分支推送到远程仓库,远程仓库多出来一个分支)
  5. 合并分支
  6. 删除分支

查看分支

列出所有本地分支(本地仓库里面的分支)
branch:翻译过来就是分支的意思

git branch

列出所有远程分支(远程仓库里面的分支)

git branch -r

列出所有本地分支和远程分支

git branch -a

在这里插入图片描述
在这里插入图片描述
以本地test01为例

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git branch
* master

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$

只有一个分支master
这就是本地仓库的分支

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git remote -v
origin  https://gitee.com/doreamen-ac/test01.git (fetch)
origin  https://gitee.com/doreamen-ac/test01.git (push)


关联的远程仓库
远程仓库的分支:

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$  git branch -r
  origin/master


-r:代表remote远程的
origin指代远程仓库的地址,master分支

查看关联的所有分支
-a:代表all表示所有

ndrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git branch -a
* master
  remotes/origin/master


创建分支

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$  git branch b1


这样就创举了一个b1分支
查看分支

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git branch
  b1
* master


除了有master,还有一个b1

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$   git branch b2


Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$  git branch
  b1
  b2
* master


这里一共有三个分支了,master前边的*表示当前处于哪一个分支

切换分支

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git checkout b1
Switched to branch 'b1'

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (b1)
$ git branch
* b1
  b2
  master


本地分支推送至远程分支

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (b1)
$   git push origin b1

在这里插入图片描述

由于b1分支实在 master基础上建成的所以b1分支和master分支内容相同
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

合并分支

使用

git checkout b1

切换到b1分支
新建一个java文件
在这里插入图片描述

git add User.java
git commit 
add User.java in b1 branch
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
# Changes to be committed:
#       new file:   User.java
#       new file:   User.java.bak
#
~
~
~
~

之后切换到master

git checkout master

返回文件夹会发现
在这里插入图片描述
将之前在b1下面创建的文件合并到master中来
切换到master分支中执行命令

git merge b1

在这里插入图片描述
文件来自于b1
通过merge命令合并分支
但是还有一个问题
有时候合并操作并不会如此顺利,如果在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,Git就没办法合并他们,同时会提示文件的冲突,此时,需要打开冲突的文件,并且修复冲突内容,最后执行

git add

命令来表示冲突问题已经解决
add命令除了将文件加入Staged状态还可以解决冲突

将分支切换到master中
在文件夹中修改User.java

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git add User.java

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git add User.java.bak
Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git commit
[master e96b1d5] $ git add User.java
 2 files changed, 6 insertions(+)


Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$  git checkout b1
Switched to branch 'b1'

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (b1)
$

打开User.java文件会发现之前的修改消失
因为之前在master中修改,而现在是在b1中
在User.java 中再次进行修改,内容和master中不同

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (b1)
$ git add User.java

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (b1)
$ git add User.java.bak

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (b1)
$ git commit -m "update User.java in b1"
[b1 4d93464] update User.java in b1 branch
 2 files changed, 6 insertions(+)

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (b1)
$ git checkout master
Switched to branch 'master'


Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git merge b1
Auto-merging User.java
CONFLICT (content): Merge conflict in User.java
Automatic merge failed; fix conflicts and then commit the result.
Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master|MERGING)
$


CONFLICT:冲突
在这里插入图片描述

在合并过程中会发现出错
打开User.java文件会发现有一点乱
不同好在之前后面加了注释
在这里插入图片描述
手动修改冲突内容:
在这里插入图片描述

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master|MERGING)
$ git add User.java


表示命令修改完成

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master|MERGING)
$ git commit

在这里插入图片描述
:wq直接退出
在这里插入图片描述
git 只会提示你冲突,至于保留哪些,是需要自己来解决

这些都是在本地仓库进行的,在远程仓库中并没有

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git push origin master
Enumerating objects: 14, done.
Counting objects: 100% (14/14), done.
Delta compression using up to 12 threads
Compressing objects: 100% (12/12), done.
Writing objects: 100% (13/13), 1.47 KiB | 500.00 KiB/s, done.
Total 13 (delta 4), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/doreamen-ac/test01.git
   1e63530..471b85d  master -> master

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)

push到远程仓库
在这里插入图片描述

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$  git push origin b1
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/doreamen-ac/test01.git
   1e63530..4d93464  b1 -> b1

Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$

将b1分支推送到远程仓库

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值