范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

git常见命令整理

  1. Windows-Git 下载安装
  官网下载地址:Git - Downloads (git-scm.com)
  官网下载太慢的解决方案:CNPM Binaries Mirror (npmmirror.com) 2 Git公钥生成与配置方法2.1 公钥的用途
  许多公司的代码仓库及第三方代码托管平台,使用的都是基于公钥的SSH认证方式(公钥加密,私钥解密)
  Git推荐使用SSH协议的原因使用SSH协议可以避免每次push输入密码。 git@github.com开头的就是SSH协议。 使用Https协议则每次都要输入用户名和密码。
  公钥是代码仓库服务器验证本地机器的一种身份识别方式。入职一家新公司后,公司的git服务器管理员,会要求你把你的git公钥通过邮件的方式发给它,配置好之后,以后每次向远程代码仓库提交代码,就不用输入用户名和密码啦。2.2 生成公钥
  这里插一句,如果感到git bash的窗口太小或者字体太小,可以自己进行调整。调整的方式是,打开git bash命令窗口后,在命令窗的标题栏,鼠标右键,然后选择options,安装下面的操作进行设置// 窗口尺寸设置 options --> windows -->修改行数(高度)+列数(宽度) // 窗口字体设置 options --> text -->设置字体大小 复制代码2.2.1 配置用户名和邮箱
  在公司使用的话,用户名建议配置成自己的真名,这样查看代码修改者的时候,比较好找。git config命令有三种作用域。# 对当前仓库有效 git config  --local        # 对当前登录者有效,对所有仓库都有效 git config  --global     # 对登录这台电脑的人都有效,对所有仓库都有效 git config  --system   复制代码
  如果配置项比较多,可以在这些指令后面加 -e 参数,打开配置文件进行配置。编辑完先按esc, 然后再按shift+:组合键,最后在命令行输入wq保存退出
  这里明显应该选择git config --global配置命令。git config --global user.name "用户名" git config --global user.email "邮箱地址" 复制代码2.2.2 生成密钥
  ssh-keygen 生成秘钥过程会有三次问询交互。第一次是询问生成秘钥存储路径和名称,默认存储位置是 /c/Users/用户名/.ssh/id_rsa, 不想更改的话按回车键。第二和第三次是要求你输入两次私钥密码。用于查看秘钥时的认证,一次是设置密码,一次是确认密码, 如果你不想在使用密钥时输入口令,按回车跳过即可。ssh-keygen -t rsa -C "上一步的邮箱地址" 复制代码2.2.3 查看公钥 cd ~/.ssh && ls  cat id_rsa.pub 复制代码
  2.3 配置公钥
  登录个人或企业的git网站,在用户设置-->SSH公钥里面 ,给公钥起个有意义的名称,将生成的公钥粘贴到公钥输入框里(注意要删除公钥末尾的空白或者换行符),点击保存,就可以了。
  2.4 Git管理多个SSH密钥,Git多帐号配置
  创建步骤:2.4.1 在每个项目下,单独配置用户名和邮箱地址,为不同项目生成密钥对,生成时指定私钥名称git config --local user.name "你的名字" git config --local user.email "你的邮箱" 复制代码
  ssh-keygen命令生成SSH-KEY密钥对文件时,需要输入文件存储路径,为不同账号起不同的名称ssh-keygen -t rsa -C "test@126.com"  复制代码2.4.2 在~ssh文件夹下,创建一个config文件,配置每个账号域名、用户名 、 验证方式、私钥文件路径Host github.com     HostName github.com     User test@126.com     PreferredAuthentications publickey     IdentityFile /c/Users/用户名/.ssh/ssh/id_rsa_github Host oschina.com     HostName oschina.com     User test@126.com     PreferredAuthentications publickey     IdentityFile /c/Users/用户名/.ssh/ssh/id_rsa_github Host gitee.com    HostName gitee.com    User test@126.com    PreferredAuthentications publickey    IdentityFile /c/Users/用户名/~ssh/id_rsa_gitee 复制代码
  HostName是服务器的地址,User是用户名,PreferredAuthentications是验证方式,IdentityFile是私钥文件路径3 Git仓库创建
  分为两种情况,一种是没有仓库,一种是已有仓库,先看第一种,从零创建仓库,然后推送到远程3.1 从零开始创建本地库,并推送到远程git init 目录名 新建一个本地仓库 git add README.md -- 将README.md文件加入到仓库中 git commit -m "提交描述" -- 将文件提交到本地仓库 git remote add origin "远程仓库地址" -- 添加远程仓库,origin是一个远程主机的别名,名称可以随意取,一个远程主机上可以有多个远程仓库 git push -u origin master -- 将本地仓库push到远程主机origin的master分支,并将origin设为默认远程主机 -u参数设置默认远程主机,后续push代码,不写主机名的话,就是默认主机 复制代码3.2 克隆已有仓库到本地git clone /path/to/repository                                                             // 克隆本地库 git clone  git/ssh/http[s]/ftp[s]/file/rsync:username@ip/path/to/repository               // 克隆远端库 复制代码
  git clone的本质就是把Git目录里面的内容拷贝过来,一般Git目录里有成千上万的各种对象(提交对象,树对象,二进制对象, tag对象......),如果逐一复制的话,其效率就可想而知。如果通过git、ssh协议传输,服务器端会在传输前把需要传输的各种对象先打好包再进行传输;而http(s)协议则会反复请求要传输的不同对象。如果仓库里面的提交不多的话,前者和后者的效率相差不多;但若仓库里有很多提交的话,git、ssh协议进行传输效率更高。不过现在Git对http(s)协议传输Git仓库做了一定的优化,http(s)传输现在也能达到ssh协议的效率 。4 .git目录的组成
  5 Git存储区概念
  如果你不清楚git add ,git commit ,git push都做了什么,那可能是因为你不知道git仓库存储区管理方式。git将本地的代码保存分为三个存储空间。
  工作区:用户编辑保存项目文件的区域,用户直接可以接触的地方。暂存区:保存准备提交的文件列表信息,保存在上文的.git文件夹下的index目录中;版本库:git 之所以快,是因为大多数提交都是对本地仓库而言的,不依赖网络也能进行版本管理,需要与远程仓库同步的时候才推送到远程仓库。6 分支操作
  分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master 是"默认的"分支。在其它分支上进行开发,完成后再将它们合并到主分支上。
  6.1 查看分支git branch       查看本地所有的分支 git branch -r    查看远程所有分支 git branch -vv   查看本地分支和远程分支的追踪关系 复制代码6.2 切换分支git checkout 分支名 复制代码6.3 新建分支git checkout -b  新分支名  // 从当前所处的本地分支下,创建一个新分支,分支名建议以 feature-YYYYMMDD-开发功能概述-姓名简称,这样的格式命名 git checkout -b  新分支名  远程主机名/远程分支名  // 从远程分支创建一个新分支,并追踪远程分支 复制代码6.4 重命名分支git branch -m 旧名称 新名称 复制代码6.5 删除分支git branch -D 分支名 // 先切换到别的分支名下,删除本地分支 git push --delete 远程主机 远程分支名 // 删除远程分支 复制代码6.6 合并分支6.6.1 git mergegit merge 当前分支要合并的分支名 -m "合并备注" git merge --no-ff  当前分支要合并的分支名 // 保留分支合并之前的历史提交记录 git merge --squash 当前分支要合并的分支名 // 将分支合并之前多次提交记录合并为一次 复制代码
  6.6.2 git rebase  git rebase -i  [startpoint]  [endpoint] 复制代码
  其中-i的意思是--interactive,即弹出交互式的界面让用户编辑完成合并操作,[startpoint] [endpoint]则指定了一个编辑区间,如果不指定[endpoint],则该区间的终点默认是当前分支HEAD所指向的commit
  以合并最近三次的提交记录为例:git rebase -i HEAD~3 复制代码
  弹出如下界面:
  上面未被注释的部分列出的是我们本次rebase操作包含的所有提交,下面注释部分是git为我们提供的命令说明。每一个commit id 前面的pick表示指令类型,git 为我们提供了以下几个命令:
  命令
  说明
  pick
  保留该commit(缩写:p)
  reword
  保留该commit,但我需要修改该commit的注释(缩写:r)
  edit
  保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
  squash
  将该commit和前一个commit合并(缩写:s)
  fixup
  将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)
  exec
  执行shell命令(缩写:x)
  drop
  我要丢弃该commit(缩写:d)
  根据需要编辑完之后保存即可。6.6.3 git merge和git rebase 合并分支的差异
  git rebase生成的历史记录线比较好看,merge比rebase有更多的历史记录,一方认为,合并分支不能仅仅为了好看,而要记录某个分支完整开发历史,一根直线的历史,很难分辨出开发历程和工作分配,如果开发过程跌跌撞撞,要进行如实记录,遍于后期改进。
  另一方认为,在开发过程中,如果某个分支功能比较多, commit量比较多时,使用rebase可以将当前分支提交记录整理过后再合并回主干,这样主干的演变轨迹线会看着比较美观,比较清晰。如果项目成员对git用得比较熟练,建议使用git rebase,否则建议使用git merge,便于查看提交历史。6.7 合并分支冲突
  冲突的原因是两个不同的开发者改了相同文件相同位置的代码,冲突提示,$ git merge conflict-branch    Auto-merging index.html  CONFLICT (content): Merge conflict in index.html  Automatic merge failed; fix conflicts and then commit the result. 复制代码
  文件冲突,HEAD到=======之间的是当前分支,=======到>>>>>>>之间的是冲突分支的内容,最后面是冲突分支名<<<<<<< HEAD 复制代码
  id="footer">contact : email.support@github.com======= 复制代码
  id="footer"> please contact us at support@github.com>>>>>>> conflict-branch 复制代码
  合并冲突的原则是取最大公约数,共同的部分只保留一份,有差异的地方多方都保留 遇到冲突,难于解决,想回退到未合并之前的状态,使用git merge --abort 复制代码
  解决完冲突文件之后,要重新添加文件到暂存区和本地版本库。
  另外一种场景是git pull最新的代码后,git stash pop引起冲突,想回退到最新没冲突之前的代码,使用指令git reset --hard HEAD 复制代码6.8 追踪分支
  追踪分支主要用来对比当前和远程分支的版本, 比如说origin/master分支比master多提交了两次,意味着你需要将origin/master的分支更新到master。git branch --set-upstream-to=远程主机名/远程分支名 本地分支名(可不写,不写表示当前分支) 复制代码7 设置忽略文件7.1 创建忽略文件
  在仓库根目录下新建.gitignore文件,文件名不可更改。在Win系统下,不允许新建以.开头的文件或文件夹,因此需要在Git Bash中新建,命令如下:cd 本地代码仓库目录 vim .gitignore 复制代码7.2 忽略文件语法# 以#开头的行都是注释 # 忽略*.o和*.a文件(常见的编译过程中产生的文件)  *.[oa] # 忽略*.c和*.C文件,somefile.c除外,!用于在在某规则之后增加例外 *.[cC] !somefile.c # 忽略somepath文件和somepath目录 somepath # 只忽略somepath目录,不忽略somepath文件  somepath/ # 只忽略somepath文件,不忽略somepath目录  somepath  !somepath/  # 只忽略当前目录下的somepath文件和目录,子目录的somepath不在忽略范围内  /somepath 复制代码
  7.3 忽略文件的原则忽略操作系统自动生成的文件,比如缩略图等;忽略自动测试生成的报告文件,忽略代码治疗扫描结果文件;忽略带有敏感信息的配置文件,比如存放口令的配置文件。忽略依赖安装包,忽略包管理工具生成的错误文件,忽略打包目录
  7.4 忽略已经添加到远程仓库的文件 ( 如果文件重要,要提前备份)删除文件追踪两种方法git rm –cached xxx git rm -r –cached 复制代码在.gitignored中添加需要过滤的文件commit, push提交.gitignore 配置这个后其他成员pull后working directory中对应的文件会删除,8 工作空间操作8.1 进度暂存
  git 切换分支时,如果当前分支的功能没有开发好,不具备提交的条件, 如果不对这些内容做暂存处理,会被带入到切换之后的分支,给代码管理带来不必要的麻烦。这时就需要对尚未开发完成的进度进行存储操作。git stash save "备注说明"    // 暂存尚未开发完成的进度 git stash list              // 查看暂存进度 git stash pop stash@{1}     // 恢复指定进度到工作区,stash_id是通过git stash list命令得到的,如果不指定,恢复最新的进度到工作区 git stash drop [stash_id]   // 如果不指定stash_id,则默认删除最新的存储进度。 git stash clear             // 删除所有暂存内容 复制代码8.2 将工作区的改动添加暂存区git add dir1          # 添加dir1这个目录,目录下的所有文件都被加入  git add f1 f2         # 添加f1,f2文件  git add -u            # -u是update的缩写,只监听已经被加入的文件,包括修改和删除,不包括新增的文件和.gitignore中设置的忽略文件 添加到暂存区  git add .             # 监听工作区的状态树,把工作区状态树的所有变化提交到暂存区, 包括新增的和修改的,不包括删除的文件和.gitignore中设置的忽略文件 git add -A            # 等于 git add . + git add -u 不包括.gitignore中要忽略的文件 git add *             # 等同git add -A 复制代码8.3 将暂存区的文件提交到本地版本库git commit -m    "代码提交信息" git commit -a -m "代码提交信息"      # -a是把unstaged的文件变成staged(不包括新建的文件),然后commit git commit --amend                 # 修改提交的commit(没有push) git commit --amend -m "comment"    # 修改commit注释 复制代码8.4 将本地版本库推送到远程版本库 git push   <远程主机名> <本地分支名>:<远程分支名>  git push -f <远程主机名> <本地分支名>:<远程分支名> // 强制推送 复制代码
  git push命令使用时常见的四种情况:
  git push <远程主机名> <本地分支名>
  如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建
  git push <远程主机名> :<远程分支名>
  如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin --delete 远程分支
  git push <远程主机名>
  如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到远程主机的对应分支
  git push
  如果当前分支只有一个远程分支,那么主机名都可以省略8.5 更新远程版本库的内容到本地版本库git fetch <远程主机名> <远程分支名>:<本地分支名> git pull   <远程主机名> <远程分支名>:<本地分支名>  // 等于git fetch+git merge 复制代码
  git pull 常见的四种省略参数的情况,与git push比较类似。这里就不再赘述。git pull除了更新和自动合并当前代码之外,还有更新仓库所有分支的功能,注意是更新分支,不是更新分支上的代码。8.6 git版本库回滚
  回退命令git checkout --  #撤销工作区修改,省略filename,就是放弃工作区所有的改动  git log --pretty=oneline --abbrev-commit    #查看version_hash  git reset version_hash --[soft|mixed|hard]  #本地仓库回退到某个版本 # --soft       回退commit,stage和workspace仍旧保留改动 # --mixed      回退commit和stage,git reset默认的模式,只有工作区保留改动 # --hard       回退commit stage workspace 所有的改动都会丢失  git push  -f 远程主机名 远程分支  #强制远程仓库回退到本地仓库版本 复制代码
  回退流程
  1.备份当前分支git checkout -b the_branch_backup  复制代码
  2.本地仓库版本回退git log --pretty=oneline --abbrev-commit #查看回退版本号 git reset --hard the_commit_id #本地仓库版本回退 复制代码
  3.远程仓库回退git push origin :the_branch //删除远程 the_branch 复制代码
  4. 用回滚后的本地分支重新建立远程分支git push origin the_branch  复制代码
  5.回退成功,删除本地备份分支git branch -D the_branch_backup  复制代码
  Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向回退版本
  提交代码时提交错了分支的处理方法git log --pretty=oneline --abbrev-commit   #查看 提交之前的commit_id git reset commit_id                        #本地版本库回退 git stash                                  #暂存工作区和暂存区改动 git checkout target_branch                 #切换到正确的分支 git stash pop                              #恢复代码 git add -A && git commit - m "备注" 复制代码git revert和git reset的区别
  (1) git reset只能针对本地操作,如果本地删除的内容已经推送到远程仓库,下一次更新时,被删除的内容会恢复。git revert可以对对远程服务器执行回退操作。下一次更新时,本地被删除的文件,不会恢复。
  (2) git revert会使提交记录增多,git revert是撤销指定版本的提交,会产生一个新的提交记录,git reset会使提交记录减少,git reset是回卷,会撤销指定版本之后的所有提交记录git revert和get reset的后悔药
  revert后如果不想撤销了,看一下log,reset就可以回去了。git log                         # 查看commit_id git reset --hard commit_d       # 回退本地仓库,暂存区,工作区 复制代码
  reset后后悔了怎么办,没有log了,怎么办? 没关系,用git reflog命令可以查到更多commit_id:git reflog                       # 查看所有的命令操作记录,可以查询到git reset之前的commit_id git reset --hard commit_id       # 就可以回退会reset以前状态了。 复制代码
  在git中,总是有后悔药可以吃的,git reflog 记录你操作的每一条指令,HEAD指向的版本是当前版本,Git允许我们使用命令git reset --hard commit_id在历史版本之间穿梭。穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。8.7 git 提交指定分支
  git cherry-pick命令的作用,就是在当前分支上,把其它分支的提交记录合并过来,这在两个版本刚开始说要一起上线,后来一个版本不上线了,而代码都搅合在发布分支,要撤销不上线的代码时,配合git reset指令,可以轻松实现发布分支不上线功能的代码下撤。 a1 - a2 - a3 - a4       A                      b1 - b2 - b3  B 复制代码
  现在将b2提交应用到A分支。# 切换到 A 分支 $ git checkout A  # Cherry pick 操作 $ git cherry-pick b2 复制代码
  操作完成以后,代码库就变成: a1 - a2 - a3 - a4 - b2     A                      b1 - b2 - b3     B 复制代码
  合并多个提交的操作指令是:git cherry-pick   复制代码8.8 git删除
  当我们需要删除暂存区或版本库上的文件, 同时工作区也不需要这个文件了, 可以使用git rmgit rm file_path git commit -m "delete somefile" git push 复制代码
  当我们需要删除暂存区或版本库的文件, 但本地又需要使用, 只是不希望这个文件被版本控制, 可以使用 git rm --cachedgit rm --cached file_path git commit -m "delete remote somefile" git push 复制代码8.9 git log
  推荐两条简写提交日志格式设置参数, lm-不显示提交记录汇总信息 lms-会现在提交记录汇总信息# 提交记录hash值是红色 提交描述是蓝色 提交日期是绿色 提交者是深蓝色 git config --global alias.lm   "log --no-merges --color --date=format:"%Y-%m-%d %H:%M:%S"  --pretty=format:"%Cred%h %Creset- %Cblue%s %Cgreen(%cd) %C(bold blue)<%an>"" # 有提交记录汇总信息 提交记录hash值是红色 提交描述是蓝色 提交日期是绿色 提交者是深蓝色 git config --global alias.lms  "log --no-merges --color --stat --date=format:"%Y-%m-%d %H:%M:%S"  --pretty=format:"%Cred%h %Creset- %Cblue%s %Cgreen(%cd) %C(bold blue)<%an>"" 复制代码
  命令浅析:--no-merges:不显示分支合并日志 %h:简短hash提交字符串 %cd:提交日期 %an:提交者 %s:提交说明 %C+颜色值+内容=给内容设置相应的颜色 复制代码
  看看这两种风格的注释是不是看着更优雅,更舒服
  9 Tag操作
  在软件发布时创建标签,建一个发布版本的里程碑,是被推荐的。9.1 tag创建#查询版本号 git log --pretty=oneline --abbrev-commit  #创建tag git tag v1.0.0 1b2e1d63ff  -m "20210123 created"  #推送某个tag到远程仓库 git push origin tag_name  # 一次性推送所有tag到远程服务器 git push origin --tags 复制代码9.2 查看tag# 查看某个tag记录 git show tag-name  # 查看所有的tag git tag -ln  # 加-ln,查看tag简略信息 复制代码9.3 使用tag// 取出打过tag的某个版本  git checkout -b branch_name tag_name 复制代码9.4 删除tag#删除本地的tag命令是 git tag -d tag-name  #删除远程tag的命令是 git push origin --delete tag-name 复制代码10. .gitlab-ci.yml配置参考示例#镜像名称不是随意起的,要与docker配置名称对应 image: node:lts  # 要缓存的东西 cache:   key: ${CI_COMMIT_REF_SLUG}   paths:     - node_modules/     - .yarn-cache/  variables:   APP_NAME: "alp-crm-ng"  stages:   - format # 预处理命令 before_script:   - echo "before_script"   - node -v   - yarn -v   - yarn install --cache-folder .yarn-cache  format:   stage: format   script:     - yarn format 复制代码11. git良好的使用习惯每次提交前,检查一下所提交代码,是不是真正想修改的内容提交的粒度要细,频率要高,能极大减少代码冲突和重要改动无版本存储问题最好打通gitlab和钉钉,企业微信机器人代码提交通知,有人提交代码时,可以及时通知其它人更新,减少代码冲突的概率git的自动合并功能,有瑕疵,有时候文件的一些部分,合并是对的,一些部分,合并有冲突,最好逐个文件检查给项目配置husky工具,可以在提交代码的时候,对代码进行格式化,或者检查是否符合lint规则,如果不符,可以终止提交对于异常操作,一定要保留现场,查明原因,这样记忆更深刻。要看一下每条git命令的回显,看看是不是你要执行的操作, 有没有遗漏或报错或者执行终止的情况git减少代码冲突的做法分配任务时,尽量把任务拆分成独立的模块, 彼此之间的交集越少越好对于容易冲突的大文件,可以指定由一个人去修改将大文件拆分成多个子文件,将所有的子文件导入到一个index.ts索引文件中,使用的时候从索引文件中按需导出组内成员对预感会产生冲突的大文件,商量好修改顺序12. git 常见报错error: pathspec "branch-xxx" did not match any file(s) known to git
  git checkout 的分支不存在.git文件夹引起的修改了文件的名称,将小写改成大写,提交到git远程仓库,发现文件名称没有改变,解决方法是git rm -r --cached . 复制代码
  3. 合并代码,推荐用如下命令,比git merge更好用。git pull origin remote_need_merge_branch_name  复制代码在VSCode的git命令窗口提交代码时,报如下错误: git pull --tags origin hotfix/20210707-hide-fund-rate From gitlab.tengmoney.com:tengmoney-fe/caizhi-minipro-cscb  * branch            hotfix/20210707-hide-fund-rate -> FETCH_HEAD  ! [rejected]        v1.2.0     -> v1.2.0  (would clobber existing tag) 复制代码
  这是因为tag被删除了,又新建了一个一模一样的tag,解决方案是,强制刷新一下远程的所有taggit fetch --tags -f 复制代码
  5. .gitignore文件中设置的忽略文件不生效的解决方法,.gitignore中设置的忽略规则,是针对未添加到版本管理的文件而言,对已添加到版本库的文件不生效。解决方法是将所有文件先从版本库删除,再重新添加一遍。
  git rm  --cached 要删除的xxx文件夹或文件 复制代码
  6. Could not retrieve the pipeline status. ---- 无法检索流水线状态。
  这种报错是因为没有流水线文件所致。error: cannot lock ref ‘xxx’: ‘xxx’ exists; cannot create ‘xxx’
  原因:git工程的.git/refs目录下跟踪的某些git分支,在pull时候发现与远程仓库对应的分支refs不同,因此导致 git pull 失败A同事$ git push -force了test这个分支,导致远程仓库的分支被覆盖,而你本地的refs则会与远程仓库的分支不一致,产生问题;git分支是不区分大小写,有人删除了远程仓库的分支又重新创建一个同样名字的分支同样也会产生问题。
  解决方法:使用git命令 git update-ref -d xxx 删除本地.git下的xxx文件如果不行,强制更新 git pull -p 强制更新
  8. The following untracked working tree files would be overwritten by merge,
  原因: 远端将某个文件加入了仓库,本地把这个文件从仓库中移除了,就会出现这样的提示。一般是同名文件,刚开始命名不规范,比如说文件名首字母大写,后面改成了小写文件。window系统不区分文件大小写,就出现这个问题。
  解决方法:
  方法1git rm --cached filename git push origin remote_branch 复制代码
  方法2git clean  -d  -fx "src/httpTypes" 复制代码
  其中 d----删除未被添加到git的路径中的文件 x---删除忽略文件 对git来说不识别的文件 f ---强制运行 ,强制合并的思路走不通。
  9. git默认对文件名称大小写不敏感,如果将原来小驼峰命名的文件改成了大驼峰,会发现本地git的改动文件提示,没有任何修改。解决方法就是执行git config core.ignorecase false 复制代码
  删除之前小驼峰文件的操作指令是git mv readme.md README.md  复制代码已删除的文件,并且本地已暂存,无法在暂存状态下复原删除的文件,将删除文件从暂存仓库中移除,才能恢复删除的文件。错误: error dst refspec matches more than one ,原因: tags与branch中有重名的分支
  解决方法:删除重名分支 12. git checkout -b 创建新分支时,报fatal: cannot lock ref xxx
  git 把分支信息存放在 .git/refs/heads 目录中,每个分支是一个文件。如果.git/refs/heads下存在同名目录,就会报这个错误。
  解决方法: 从一开始创建分支时,如果要创建一个以xxx为前缀的开发名,就要创建成xxx/test1这种格式。
  参考文章
  [1] 探秘git隐藏文件夹
  [2] 图解Git工作区、暂存区、版本库之间的关系
  [3] git merge --no-ff是什么意思
  [4] Git ignore文件的设置
  [5] Git push 常见用法
  [6] Git 分支 - 分支的新建与合并
  [7] Git管理多个SSH密钥,Git多帐号配置
  [8] Git 工作流程
  [9] Git rebase 用法小结
  [10] git log命令全解析,打log还能这么随心所欲!

二手千元5g系列,865处理器,性价比神机,有的已经成为百元机第一台,小米10,108mp的主摄,加1300万超广角。日常足够使用。两颗凑数镜头就不提了。处理器是865,一代神u,27瓦的快充,支持无线充电,也是今天这四台唯一一个支持无线充电我在惊悚游戏里封神摘录我在惊悚游戏里封神摘录流浪马戏团白柳贫穷的流浪者唐二打凋谢的玫瑰猎人刘佳仪被诅咒的禁忌女巫木柯光明勇敢的刺客牧四诚盗贼驯养的卷尾猴塞壬小镇1。你想从我身上得到什么?或许是一个吻?好12256GB版本降至1799,小米新款中端神机,性价比极高要说中端神机,自然离不开红米K系列。从红米K20系列的诞生,到如今最新的红米K50系列,每年2000元左右的中端机,性价比最高的都是红米K系列。今年,在这个价位段,红米不仅推出了红25年前,他不顾反对捡废品也要收草丛弃婴,25年后她来报恩了当一个婴儿呱呱坠地,诞生于这个世界的时候,做父母的为孩子的到来感到无尽欢喜,为孩子置备色彩艳丽的衣服,舒服的小床,挑选最好的奶粉等等。但是25年前,有一个婴儿的到来却引起了父母的不保温杯里放枸杞的科学依据来了!枸杞水里加点它,养生效果或许会翻倍人到中年不得已,保温杯里泡枸杞很多圈友听说过这句话随着人们健康养生观念的提升不管是年轻人还是老年人都喜欢泡点枸杞水来养生保健有圈友听说喝枸杞水能坚筋骨想知道这种说法是真的吗?枸杞对才知道,吃这2种食用油,比吃地沟油更伤身体,快告诉老人别吃了多学学多看看!点击关注,每天精彩不断!导读才知道,吃这2种食用油,比吃地沟油更伤身体,快告诉老人别吃了!随着社会的进步跟发展,相信大家也也知道自己的生活水平以及生活质量都得到了一定入睡难,多梦易醒,多吃这3种食物,营养丰富,安神助眠睡得香许多人存在入睡困难多梦浅睡易醒,睡眠时间短的情况。长期睡不好觉,不仅会让人精神不济,还会影响身体健康。想睡个好觉,不妨先从改变饮食开始。多吃下面这3种食物,营养丰富,安神助眠睡得香这3种食物不能二次加热,吃不完最好扔掉!别太节俭1海鲜海鲜含维生素,矿物质以及高蛋白和一些嘌呤成分,适当的吃海鲜对人体能够补充营养成分。随着生活质量提升,现在每家每户都能吃上海鲜,但是对于海鲜而言,也不建议再次加热,因为海鲜放置饭后经常拉肚子腹胀腹痛千万别大意随着夏季的到来,气温的不断升高,很多人的日常生活,几乎离不开这些关键词西瓜冰淇淋刨冰各类冷饮烧烤炸串火锅还有空调!然而,如此惬意美好的夏日生活背后,不少朋友却难逃拉肚子的一番折磨。入秋后,需要注意什么?牢记3不吃,3不睡,神清气爽地过秋天秋老虎,秋老虎,说的就是入秋后,天气的炎热不但没有降温,反而更让人感觉到无比的炎热,,俗话说得好,立秋反比大暑热,中午前后似火烤,说的就是秋天的热和夏季的热是截然不同的。入秋后的炎9种食物被称为脑黄金,孩子常吃促大脑发育增强记忆,学习成绩好孩子聪不聪明不全都靠先天遗传,很多时候也可以通过食补来促进孩子大脑发育。只有能量营养物质供应充足时,大脑才能快速运转,否则很容易出现学习能力降低健忘难以接受新鲜事物等情况。为了促进一首歌,唱给大海听安静的小屋阳光洒在窗前竹椅轻轻摇摆空气中飘浮着音符寂寞的世界里寂静无声时间会改变生活生活里生长着乐谱有时是舒缓的琴弦有时是脍炙的歌曲时光在变,歌声也在变闭上眼轻轻唱一首歌念着歌词想太阳系出现奇观!一颗彗星在接近太阳时出现两条尾巴,怎么回事?太阳系出现奇观!一颗彗星在接近太阳时出现两个尾巴,怎么回事?彗星,相信很多人都听说过,甚至还有不少人亲眼看见过,因为夜空曾上演过肉眼可见的彗星,例如在1986年2月9日,不少人亲眼物理学家发现第五种力存在的蛛丝马迹美国国家标准与技术研究院(NIST)的研究人员使用突破性技术揭示了先前未被认可的硅晶体属性,发现了标准模型之外的可能的第五种自然力的新信息。研究报告发表在科学期刊上。标准模型是目前太空中怎么睡觉?宇航员能在太空喝酒吗?胡须怎么剃?我们中的许多人梦想着有一天能飞上太空,但许多人只看到了表面,因为太空中有许多我们需要克服的问题。如今,我们可以通过视频了解宇航员在宇宙飞船或空间站中的生活。那么在太空中,宇航员是怎英特尔第14代芯片P核在GoldenCove架构上改进而E核采用新架构根据CoelacanthDream透露的信息,在英特尔的开源数据库中,透露了关于第14代MeteorLakeCPU的最新信息。从官方透露的信息来看,MeteorLakeCPU会在现一个二轮秀,生涯场均13分,如今却要进名人堂,他凭什么?马努吉诺比利狼退蛇隐佛向西,妖刀归鞘闪电熄。这句诗中有5个伟大的NBA巨星,分别是狼王加内特黑曼巴科比石佛邓肯闪电侠韦德,以及妖刀马努吉诺比利。科比韦德,邓肯加内特,都是联盟的金字林书豪开启商业之旅!球迷接机举标牌,直言拿出最好的状态8月19日,林书豪正式开启了自己的商业之旅,他的球鞋赞助商的城市之行正式启动,这次林书豪将会在沈阳葫芦岛长沙和深圳等地方现身,参加赞助商的活动。林书豪是前段时间来到国内的,进行了7星汉灿烂作妖刷存在感的她汝阳老王妃的结局她是裕昌郡主的祖母她也是当今皇帝的叔母她更是凌不疑继母淳于氏的好友兼闺蜜她就是嚣张跋扈的汝阳老王妃,按她的辈分应该与汝阳王一样是德高望重,逍遥自在的存在,但这个老女人偏要倚老卖老,赢了官司输了事业,朱军二审仍被判无罪他还能主持春晚吗?正是因为这个世界上拥有正义感,所以才让人成为了人,而不是让人成为了狼。培根这个世界上有许多形形色色的人,每天也会发生各种不一样的事情。但是正义感却是这个世界上唯一不可或缺的东西,也网传被湖南卫视除名后,李维嘉首露面,合照站角落显凄凉前段时间,有网友扒出在湖南卫视官网上已经找不到关于李维嘉的信息,原定李维嘉将要主持湖南卫视的中秋晚会,如今在主持人名单上也找不到他的名字。该消息一出,迅速引起网友热议,不少网友怀疑回锅肉两面派法制咖披哥2被嘲隐患成堆,内地哥哥太少8月19日,披荆斩棘的哥哥2如期播出了,32位哥哥的初舞台大多都选择了回忆杀。例如任贤齐演唱了经典歌曲伤心太平洋,苏有朋演唱了小虎队的代表作爱,吴克群带来的则是红极一时的为你写诗。
中俄青年长江行在安徽启程12月7日下午,共享未来中俄青年长江行活动在安徽省合肥市滨湖国家森林公园启程。约20位中俄青年代表将在接下来两周时间内,沿着长江参观并记录各地的经济社会发展成就,通过互动交流加深中风物淮南第一州,与安徽天长交界,因产化纤而驰名冬日生活打卡季今天跟大家分享的这地方,位于宁镇扬银三角地区的几何中心,是长江下游北岸唯一主城区依江而建的县级城市。汉武帝元封五年(前106年)始置县,宋真宗曾下诏在此熔铸四位远祖皇黑米是世界的米中之王关于它的知识您了解么?随着生活水平的提高,我们越来越重视饮食与健康的关系,因为大部分营养素都是从饮食中获取的。但是我们真的了解我们平时吃的食物吗?在以后的日子里,我会一一介绍我们日常生活中需要的食材。希茶可以当水喝吗?那些经常喝茶的人,现在都怎么样了凉白开很难喝,这是很多人对凉白开的认知。我们必须多喝水,这是很多人对健康的认知。多喝茶能养生,这是很多人对茶的认知。于是便出现了很多人喝茶用来代替喝水,既解决了喝水的需求,又满足了健康常识之久坐的危害有哪些?打工人的人都不容易,虽然不用在外面风吹日晒,但是在办公室里面坐一天也很难受也很累的了,久坐有什么危害呢,废话不说来看看吧!1久坐伤胃久坐会影响肠胃蠕动,由于消化液分泌的减少,就会降40到50的中年人都应该如何养生让自己活的更年轻英雄迟暮1绿茶可预防肝病。2胖大海泡茶不宜长期饮用。3感冒不宜喝苦丁茶。4胆固醇高者少吃鱿鱼。5海蜇皮能缓解高血压。6食肉过多对身体有害。7骨折初期不宜喝骨头汤。8常喝豆浆有益健康智能手机厂商进入年底密集亮相期华为nova10SE搭载骁龙680G发布封面新闻记者张越熙12月,厂商新款机型进入最后的密集发布期,各品牌商将高端机功能下放,在中低端市场激烈混战,在系统摄影屏幕芯片等领域加速比拼。12月9日,华为nova10SE正式发从3499元跌至2299元,鸿蒙OS100W快充,华为旗舰售价更亲民了大家好,我是唐三,国内的手机厂商虽然多,但如果要让消费者挑选一个品牌的手机作为国产手机的代表,那么我相信很多人都会认为华为能担得起这个大任,无论是技术实力,还是销量和口碑,华为在国新的政策无疑可以让小米11系列用户更安心了小米11系列在发布之初口碑良好。所有由三星E4材料制成的2K屏幕还支持全球DC调光,这可以说是近年来最好体验的屏幕。不幸的是,他们遇到了骁龙888。该芯片的能耗过高,导致主板上存在爬虫文章采集不需要技术只需要点几下鼠标就能获取数据爬虫文章采集,我们怎么利用爬虫采集自己想要的文章内容,我们需要学习python爬虫吗?如果完全靠自己自学,又是从零基础开始学习Python的情况下,按照每个人的学习和理解能力的不同python学习分享笔趣阁小说全本下载工具爬虫源码导入模块importrequestsimportparselfromlxmlimportetreeimportreimportpandasaspdimportdatetimeimp