第三方数据未拉取取不了现 git add • 添加当前目前下所有文件到stage
git 远程仓库操作
1、git -v 显示所有远程仓库
git -v
xxxxx //为远程地址的别名
xxxx
2、显示某个远程仓库的信息
git show 【】 // :远程地址
3、添加到远程版本号
git add 【 远程仓库在本地的别名】[url]
#添加一个远程仓库配置
git add
git rm name //删除远程仓库 本地删除远程的管理
git //修改仓库名
git fetch //从远程获取代码库
将某个远程主机的更新全部取回到本地
git fetch
取回特定的分支
git fetch
取出 主机的 分支
git fecth
取回更新后,会返回一个 指某个 在服务器上最新状态,我们可以在本地通过它查看刚取出更新信息
git log -p FETCH-HEAD
git fetch :
git push : 如果省略本地分支名,则表示 删除指定的远程分支,因为等于推送一个空的 本地分支到远程分支。
等同于 git push --
git pull 下载远程代码并合并本地的版本
git pull :
将远程主机的 分支拉取过来,与本地的分支合并
git pull :
如果远程分支与当前分支合并,则冒号后面的部分可以省略
git pull
git push 上传远程代码并合并
将本地的分支版本上传到远程并合并
git push :
如果远程与本地分支名相同,可以省略冒号
git push
如果本地版本号与远程版本号有差异,但又要强制推送可以用 --force 参数
git push --force
git push -- //删除主机的分支 :表示远程地址
git push 、git push -U
git push 当前分支推送到主机的对应分支,如果当前分支只有一个追踪分支,那么主机名()可以省略
git push 如果当前分支与多个主机存在追踪关系,那么这个时候 -U 选项会指定一个默认主机。
git push -U 将本地的分支推送到主机的 分支,同时指定为默认主机
后面就可以不加任何参数,使用git push,不带任何参数的git push ,默认只推送当前分支, 这叫做 模式
解决本地与远程的冲突方式
1、git push -f
或
git push -f
本地强制上传到远程,把远程覆盖
2、git pull --
拉取远程的文件把本地的覆盖,再上传。
如果远程分支与当前分支合并,则冒号后面的部分可以省略
git pull
git push 上传远程代码并合并
将本地的分支版本上传到远程并合并
git push :
如果远程与本地分支名相同,可以省略冒号
git push
如果本地版本与远程版本有差异,但又要强制推送可以 使用–force参数
git push --force
git push -- //删除 主机的分支
git tag -a V1.0
git tag 显示查看所有标签
如果忘记给每个提交打标签,又将它发布了,可以追加 标签
假如 发布提交了,但忘记给它打标签了
git tag -a V0.9
指定标签信息命令:git tag -a -m “xxxxx”
此时如果用“git push”会报错,因为我们本地库HEAD指向的版本比远程库的要旧,所以我们要用“git push -f”强制推上去,就可以了:远程库回退成功!
还原指定版本 首先查看想要回退的版本 git log -- xxxx. // xxxx 是上面返回的SHA, 注意 · 结尾必须 是从stage->工作区把当前的修改提交到 到远程库
git 文件 // 如果工作区 文件修改了,没有add ,或, 可以把暂存区的文件覆盖工作区的文件。相当于工作区的文件还原本次修改之前的状态。
git 使 以下代号 cd 切换到哪个目录下 cd e: … 回退到上一个目录pwd 显示当前目录路径rm 删除文件 rm xxxx. 新建一个文件夹rm -r 删除一个文件夹mv 移动文件 mv src //:被移文件 :移动的目标文件夹 git stash
保存当前工作区和暂存区的修改,工作区中的修改会隐藏stage会恢复到变动之前。
git stash 将工作区文件改动保存到stash。
git stash -a 将工作区新添加的文件以及修改的文件保存到stash。
git stash show -P 或 -patch 可以查看特定stash的全部diff
git stash list:显示保存列表
git stash show stash@{X} 查看 X:列表号
git stash apply 恢复最近保存的记录但不会删除、保存列表里对应的记录。但不会删除、保存列表里对应的记录(默认会将被恢复的操作 保留在工作区,但是不会自动帮你重新暂存)
git stash apply stash@{X} X:列表号
应用任意一次修改到当前目录
git stash drop stash@【1】 来丢掉 stash{1}
保存时打上标记,git stash save “标记文本”
git stash 会把所有来提交的修改(包括暂存区和非暂存区)的都保存起来,用于后续恢复当前工作目录。
git stash 保存起来,当前目录不会显示保存起来的内容
git stash
将修改后的代码存储到本地(一个线结结构)一般会在git pull 拉取代码失败时使用。
git stash pop 将stash到本地的代码与重新git pull下的代码合并
git reset 清屏把git Bash 命令窗口的所有内容清空。
git stash pop可取出最近一次储藏的修改到工作区中,并同时将该储藏从储藏记录列表中删除
git stash 是本地的,不会通过git push 命令上传到git 上
实际应用中推荐给每个stash 加一个 ,用来记录版本使用
git stash save “” 取代git stash。
git stash 其将当前未提交的修改(即,工作区的修改和暂存区的修改)先暂时储藏起来,这样工作区干净了后,就可以切换切换到分支下拉一个fix分支。在完成线上bug的修复工作后,重新切换到dev分支下通过git stash pop命令将之前储藏的修改取出来,继续进行新功能的开发工作
git stash 命令保存工作区【】和暂存区【stage】的改变
当你想切换分支时,但工作区已经修改过了,如果你想切换分支,git是不准许的,会报错的,这时候git stash 命令就出现了。
这个git stash 可以 保存 【工作区的修改】,然后就可以切换分支了,git就不会报错了。
此命令对于【已经被跟踪】的文件才会有效。
工作目录下的每一个文件都只有两种状态:已跟踪 或 未跟踪。
【已跟踪】的文件是指那些被纳入了版本控制的文件,它们的状态可能是未修改,已修改或已放入暂存区。
初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态,因为 Git 刚刚检出了它们,而你尚未编辑过它们
git stash 保存当前工作区和暂存区的修改
git stash save “” ,如果保存的内容过多可能会导致无法辨别需要恢复的保存记录,这时候就加上save 参数后面双引号后面填写此次保存的描述信息。
git stash list 显示保存列表
git stash pop:恢复最近保存的记录并把恢复恢复的记录从保存列表中删除。只恢复工作区(默认会将被恢复的操作保留在工作区,但是不会自动帮你重新暂存)
git stash pop -index:与上面命令的效果一样,但是还会恢复暂存区
git stash pop stash@{序号}:恢复保存列表【git stash list】里面指定的保存记录,并把恢复的记录从保存列表中删除。
git stash --patch :保存之前先比较工作区和HEAD之前的区别,然后选择是否重新编辑需要保存的文档。
git stash apply :恢复最近保存的记录但不会删除保存列表里面对应的记录(默认会将被恢复的操作保留在工作区,但是不会自动帮你重新暂存)
git stash drop:删除保存列表里面最近保存的记录。后面加上 stash@{序号} 可以删除指定的保存记录
git stash clear 删除保存列表里面所有的保存记录。
git stash 分支 stash@{序号}:修改了demo里面的内容后使用git stash 保存德莫文件里面的修改,如果此时修改了demo文件然后再使用git stash pop 或者git stash apply 恢复之前修改demo里面的内容,那么此时可能会引发冲突。此时就可以使用此命令。这个命令会创建一个分支然后再创建的分支上把保存的记录恢复出来。如果成功了,将会丢弃存储(把对应保存记录删除。)
fetch pull clone
1、目的不同
git fetch:从远程获取最新版本到本地,但不会自动 merge,用于从远程跟踪分支下载和查看其他人完成的最新提交,但不将这些提交合并到本地存储库中。它从远程存储库中获取更改并将其存储在本地存储库中。
git pull:从远程获取最新版本并 merge 到本地,它会自动将提交合并到您的本地存储库中,而无需查看提交。
2、用途不同
git fetch:Fetch 只是通过将提交从远程存储库传输到本地存储库来使远程存储库的本地副本保持最新。将提交导入到本地分支将允许您跟上其他人所做的更改。
git pull:Pull 将更改引入本地代码存储库,以使用远程存储库更新本地存储库。
3、用法不同
git fetch:当您想要查看其他人正在处理的内容时,Fetch 命令非常有用,这使您可以在将更改与本地存储库集成之前轻松查看其他开发人员推送的提交。您可以通过使用命令“git fetch ”来做到这一点,该命令从远程存储库中获取所有分支。
git pull:您可以使用命令“git pull ”来执行拉取,该命令检索分支的远程副本并将其与本地副本合并。这与使用命令“git fetch ”后跟“git merge ”完全相同。
4、远端跟踪分支不同
git fetch:Git fetch能够直接更改远端跟踪分支。
git pull:git pull无法直接对远程跟踪分支操作,我们必须先切回本地[git ]分支然后创建一个新的提交。
5、拉取不同
git fetch:Git fetch会将数据拉取到本地仓库 – 它并不会自动合并或修改当前的工作。
git pull:git pull是从远程获取最新版本并merge到本地,会自动合并或修改当前的工作。
6、不同
git fetch:使用Git fetch更新代码,本地的库中的不变,还是等于1。
git pull:使用git pull更新代码,本地的库中的发生改变,变成了2。
7、安全性不同
git fetch:git fetch是一个更安全的选择,因为它从你的远程仓库拉入所有的提交,但不会对你的本地文件做任何修改。这给了你足够时间去发现远程仓库自从你上次拉取后到现在为止发生的变化。你可以在合并前检查哪些文件有变化,哪些文件可能导致冲突。
git pull:git pull相当于运行git fetch,然后立即将你的改动合并到本地仓库。这样的确少了一个步骤,但是也会带来一些风险。
clone 是本地没有 时,将远程 整个下载过来。
pull 是本地有 时,将远程 里新的 数据(如有的话)下载过来,并且与本地代码merge。
从远程服务器克隆一个一模一样的版本库到本地,复制的是整个版本库,叫做clone.(clone是将一个库复制到你的本地,是一个本地从无到有的过程)
从远程服务器获取到一个分支的更新到本地,并更新本地库,叫做pull.(pull是指同步一个在你本地有版本的库内容更新的部分到你的本地库)
git pull相当于是从远程获取最新版本并merge(合并)到本地 git pull = git fetch + git merge,git fetch更安全一些
git clone是远程操作的第一步,通常是从远程主机克隆一个版本库,eg: git clone ## 该命令会在本地主机生成一个目录,与远程主机的版本库同名,如果要是制定不同的目录名,可以将目录名作为git clone 命令的第二个参数。eg:
git clone #版本库网址# #本地目录名# git clone支持多种协议,除了http(s),还有ssh,git,本地协议。
git pull 作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。
git fetch:当您想要查看其他人正在处理的内容时,Fetch 命令非常有用,这使您可以在将更改与本地存储库集成之前轻松查看其他开发人员推送的提交。您可以通过使用命令“git fetch ”来做到这一点,该命令从远程存储库中获取所有分支。上图
git fetch:从远程获取最新版本到本地,但不会自动 merge,用于从远程跟踪分支下载和查看其他人完成的最新提交,但不将这些提交合并到本地存储库中。它从远程存储库中获取更改并将其存储在本地存储库中。上图
要特别注意的一点是 fetch 抓取到新的远程跟踪分支时,本地的工作区()不会自动生成一份可编辑的副本,抓取结果是直接送到版本库()中。如下图:
打个比方,在远程库 新建了一个分支 dev,git fetch 后本地不会生成一个新的分支 dev(可用 git 查看),只有一个不可以修改的 /dev 指针。
给修改者授权
第一,针对企业要收费,那当然是不同意,毕竟都想节约资金,那就还能使用gitee,或者了。
第二,但是Gitee码云虽然是免费的,而且不用自己搭环境,但是企业中把项目放在别人的服务器上,始终没有安全感。
第三,因此,衍生出了,就是用于企业搭私服,而且还是在自己的服务器上。
第三方团队参与开发 Fork 、pull
Tag
tag的定义 简单的理解,tag 就是 对某次 的一个标识,相当于起了一个别名。
有两种类型的标签 : 轻量标签()、附注标签()
【轻量标签 】: 只是某个 的引用,可以理解为是一个的别名;
【附注标签】 :是存储在git仓库中的一个完整对象,包含打标签者的名字、电子邮件地址、日期时间 以及其他的标签信息。
它是可以被校验的,可以使用 GNU Guard (GPG) 签名并验证。
查看标签
git tag 直接列出所有的标签
git tag -l [标签名称筛选字符串*] 或者 git tag --list [标签名称筛选字符串*] 别忘记通配符 *
git tag -l xxx 可以根据xxx 进行标签的筛选
git show 标签名 查看标签的信息,(轻量标签 和 附注标签 的信息是不一样的)
git log -- --graph 在提交历史中查看标签
git tag 标签名 或 git tag 标签名 提交版本 创建轻量标签
git tag 标签名 : 直接给当前的提交版本创建一个【轻量标签】
git tag 标签名 提交版本号 :给指定的提交版本创建一个 【轻量标签】
创建附注标签
git tag -a 标签名称 -m 附注信息
或
git tag -a 标签名称 提交版本号 -m 附注信息
删除标签
git tag -d 标签名称 删除指定名称的标签
推送到远程仓库
默认情况下, git push 命令并不把标签推送到远程仓库,因此,需要手动将本地标签推送到远程仓库中
git push 标签名称 将指定的标签上传到远程仓库
or
git push --tags 将所有不在远程仓库中的标签上传到远程仓库
删除远程仓库的标签
$ git push :regs/tags/标签名称
or
$ git push -- 标签名称
检出标签
检出标签的理解 : 我想在这个标签的基础上进行其他的开发或操作。
检出标签的操作实质 : 就是以标签指定的版本为基础版本,新建一个分支,继续其他的操作。
因此 ,就是 新建分支的操作了。
git -b 分支名称 标签名称
》》》 git cat-file -p 状态编码