Git使用

一、创建新分支开发

1、远程没有分支需要新建

1、切换到被复制的分支(这里是master,当然也可以是其它分支),并且从远端拉取最新的版本

$git checkout master
$git pull

2、切换并创建分支

$git checkout -b dev
Switched to a new branch 'dev' //执行结果

3、把新建的分支push到远端

$git push origin dev

4、拉取远端分支

$git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> dev

经过验证,当前的分支并没有和本地分支关联,根据提示进行下一步。
5、关联

$git branch --set-upstream-to=origin/dev

6、再次拉取验证

$git pull

OK,至此就搞定了。

2、远程已有分支

1、从远程拉取分支到本地

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

2、提交本地dev分支作为远程的dev分支(合并后分支可用)

$git push origin dev:dev

3、小结

在使用Git的过程中需要注意以下几点:

  • 第一,分支。git因为分支而强大,所以需要理解git中的分支,我们可以在一个远程服务下拉取多个分支,比如:生产分支、测试分支、开发分支等等。

  • 第二,本地和远程。当我们在本地新建了一个分支,还要把新分支推到远程建立一个一样的分支。这时候我们在本地和远程建立分支后还要把他们关联起来,这样才有意义!!!

  • 第三,git远程服务和git远程分支。某一个或某几个分支是在一个服务下的,就好比A项目在远程的服务是a,那么a服务下我们可以创建master、test、dev多个测试分支。其实一个远程服务就是一个project因为在github或gitlab都是创建project。

  • 第四,当我们从master分支上拉取开发分支,我们在自己的开发分支上pull的时候会把别人提交到master分支的代码pull下来,而push的时候还是提交到了自己的开发分支,除非你把自己的开发分支合并到了master分支上。

参考:原文链接

二、push本地分支到远程某分支

  1. 选择更改的文件夹执行 commit

2.将本地分支wjj代码推到远程分支SETTLE_HZ上

 git push origin wjj:SETTLE_HZ

三、从git仓库拉代码更新服务器代码(Git pull)

1、报错:Committing is not possible because you have unmerged files.

解决方法:
git reset --hard FETCH_HEAD
然后再次git pull

2、报错:Your local changes to the following files would be overwritten by merge: go.mod

解决方法:

方法一、stash

git stash
git commit
git stash pop

接下来diff一下此文件看看自动合并的情况,并作出相应修改。

  • git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
  • git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
  • git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
  • git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。

方法二、放弃本地修改,直接覆盖

 git reset --hard
 git pull

3、报错:Mac连接远程服务器(Linux)以及文件上传、下载命令

使用ssh连接远程主机

ssh username@192.168.100.100

四、Git拉取远程分支到本地

1、当本地有其他分支的代码仓库时

通过下述命令查看所有的远程分支: git branch -r
下面有2种方法来拉取远程分支代码:
(1).需要本地分支和远程分支建立映射关系
执行如下命令: git checkout -b 本地分支xxx origin/远程分支xxx
使用这种方式会在本地仓库新建本地分支xxx,并自动切换到新建的本地分支xxx,当然了远程分支xxx的代码也拉取到了本地分支xxx中。采用这种方法建立的本地分支会和远程分支建立映射关系。
(2).不需要本地分支和远程分支建立映射关系
执行如下命令: git fetch origin 远程分支xxx:本地分支xxx
使用这种方式会在本地仓库新建本地分支xxx,但是并不会自动切换到新建的本地分支xxx,需要手动checkout,当然了远程分支xxx的代码也拉取到了本地分支xxx中。采用这种方法建立的本地分支不会和远程分支建立映射关系。

2、当本地没有其他分支的代码仓库时

执行如下命令: git clone -b 分支名 仓库地址
执行上述命令后就将远程分支拉取到了本地。

五、使用scp命令实现上传下载

1、下载服务器 test.txt 到本地桌面

scp root@192.168.100.100:/root/test.txt /Users/mac/Desktop

2、上传本地桌面上的 test.txt 到服务器 root 目录下

scp /Users/mac/Desktop/test.txt root@123.207.170.40:/root/

3、下载服务器 root 文件夹

scp -r root@192.168.0.101:/root/ /Users/mac/Desktop/

4、上传当前本地目录下的 test 文件夹到服务器 root 目录下


scp -r test root@192.168.0.101:/root/ 

eg.例子
scp -r /Users/bytedance/Desktop/nsq_consumer@v0.0.0-20181029042815-bbbf6791cce5 tiger@10.225.117.131:/home/tiger/go/src/code.byted.org/gopkg
注:目标服务器要开启写入权限。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值