本文共 2673 字,大约阅读时间需要 8 分钟。
这个方法,适用于第一次拉取远程代码,本地仅仅需要创建一个文件夹,然后就可以clone远程代码了
- 因为远程仓库在newbranch分支上,所以拉取的是newbranch上的代码
- 这个方法,适用于本地已经有了远程仓库的基本信息,但是又想拉取其他分支的代码
- 适用git pull之前,需要先将远程分支切换到目标分支(master)上,然后本地再使用git pull
- 本地git pull 之后,需要切换到目标分支(master)上,才能看到变化的效果
1.没有修改过任何信息,也没有提交任何信息的时候
- newbranch是我的分支名
- working tree clean 说明,我没有修改任何工作目录下的文件
2.只修改文件,不做任何其他操作的时候:
-我在third_file文件里面,覆盖添加的一条信息,如上截图就能看到,third_file文件被修改了
- 但是,因为没有添加到临时仓库,截图最下面提示,需要git add、以及git commit
3.在上一步之后,我们添加到临时仓库试试:
- 发现最初的红色字体的modified:third_file,现在变为绿色字体了,说明已经添加到临时仓库了。
- 截图中右上角箭头,也从点(.)变为了加号(+)
- 也提示了,需要commit一下
4.紧接着上一步,提交信息:
- 如上发现,右上角的箭头,也从黄色变为绿色了
- 红色方框提示,commit 一次了,可以使用git push发布到本地仓库(我们需要推送到远程仓库)
5.推送到远程仓库:
注意:因为我袁曾仓库使用的git init初始化的,push之前,先确保你远程仓库不在newbranch分支上,然后再push才能成功,否者会产生冲突,冲突原因可参考:
https://blog.csdn.net/chenmozhe22/article/details/105055838
commit 后面16进制的字符串是版本号,如果想版本回退是时候,需要用到这个号码
HEAD —> newbranch 代表目前这个版本提交到本地仓库了,本地文件是更新了的 ogigin/newbranch ,这个代表,目前这个版本已经提交到远程仓库了。
本地仓库和远程仓库都推送了,显示效果如下:
- 如上两种方式都可以查看目前处在哪个分支上,都处在master分支上(看*号在哪个分支前面)
- 第一种,可以看到不同的分支,版本号的前6位是什么,以及对应commit的信息是什么(就是git commit -m "xxxx"中xxxx显示的部分)
# 列出所有的分支,"*" 标识的是当前分支git branch # 列出所有远程分支git branch -r # 列出所有本地分支和远程分支git branch -a # 新建分支,但仍停留在当前分支git branch [branch-name]# 如果需要删除的分支不是当前正在打开的分支,使用branch -d直接删除git branch -d
# 最终查看到的信息如下:origin root@你的id地址:/data/git/third_git/ (fetch)origin root@你的ip地址:/data/git/third_git/ (push)
- origin代表远程仓库的意思,后面分别是:用户名@ip地址:git详细地址
- 因为我最初是先创建的文件夹,再创建文件和写入文件,然后才git init方式初始化的远程仓库,third_git是我git的仓库地址,与xxxx.git类型
其实git remote -v显示的信息,在.git(版本控制信息库)中有保存一份参数文件。在.git/config文件中
git push <远程主机名> <本地分支名> : <远程分支名> # 冒号(:)前后不要有空格 远程分支名> 本地分支名> 远程主机名>
git push origin master:master
- 将本地的master分支推送到远程主机origin上的对应master分支, origin 是远程主机名.
- 一般,第一个master与目前本地所在的master对应
- 如果远程仓库没有master分支,会在远程仓库新建master分支
常见错误:
本地目前处在newbranch分支,但是希望把本地master分支推送到远程分支(没设置最终分支),就产品冲突错误。因为没设置远程追踪的分支,所以没有推送成功,查看的结果是推送到本地的newbranch分支了。(对于新手,不建议这么使用)
如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建
如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin --delete master
如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到origin主机的对应分支
如果当前分支只有一个远程分支,那么主机名都可以省略,形如 git push,可以使用git branch -r ,查看远程的分支名
git push 详情可参考:
https://www.cnblogs.com/qianqiannian/p/6008140.html