要提交修改过的文件,首先使用 git add <file>
,然后再执行 git comit <file> -m "??mark"
,但是这两步也可以一步完成,如下所示 -
$ git commit -a -m "描述feat: update: fixed:"$ git commit -a -m "描述feat: update: fixed:"
远程存储库中的更改合并到当前分支中
$ git pull <远程主机名> <远程分支名>:<本地分支名>
比如,要取回origin
主机的next
分支,与本地的master
分支合并,需要写成下面这样 -
$ git pull origin next:master
如果远程分支(next
)要与当前分支合并,则冒号后面的部分可以省略。上面命令可以简写为:
$ git pull origin next
上面命令表示,取回origin/next
分支,再与当前分支合并。实质上,这等同于先做git fetch
,再执行git merge
。
$ git fetch origin
$ git merge origin/next
git 建立或者更改追踪关系(tracking)
git status
>Your branch is based on 'origin/home_branch', but the upstream is gone.
这时候提示基于远程分支origin/home_branch已经不见了,失去了关联依然还是可以提交和更新的,但是在效率上会差很多
你不用知道git是怎么把远程和本地分支关联起来的,输入如下两条命令(注意:这里是以本地的source为例):
git config --get branch.source.remote
>origin
- 1
- 2
这条说明返回的是本地分支连接的远程名称为origin 一般来说默认远程都是这个名字
git config --get branch.source.merge
>refs/heads/master
- 1
- 2
这条说明本地的这条source分支是和远程的master分支关联的(注意:即使远程的master分支已经被删除了,这里还是会保留master的关联,所以这才是这个问题的关键所在)
联系这两条内容,可以知道远程名为origin,并且本地分支source所关联的远程分支为master
好的,我们接着输入:
git branch -a
- 1
这里能把本地的分支和远程的分支全部打印出来,其中对应的origin(前面提到的远程名)的分支就是远程的分支,如果远程的分支上没有我们本地关联的分支,就会出现本文所要解决的问题。
如何解决呢?
这里是解决方法,–set-upstream-to命令来更改本地分支关联的远程分支,这个命令会把branch.source.remote和branch.source.merge都更改
输入(这里把本地分支的关联更改为远程的source分支,确保远程的source事先已经存在):
$ git branch --set-upstream-to=origin/source
- 1
这样就更改成功了
输入:
git status
>Your branch is up-to-date with 'origin/source'.
- 1
- 2
本地分支已经关联上远程的source了。
参考https://blog.csdn.net/limengke123/article/details/77850134