Git 进阶

HEAD 严格来说不是指向提交,而是指向 master,master 才是指向提交的,所以,HEAD 指向的就是当前分支。

fatal: Could not read from remote repository.的解决办法:

查看远端地址 git remote –v 查看配置 git config --list git status

工作区与暂存区

工作区和暂存区 command s :工作区修改 git add:提交到暂存区 git commit:提交到本地库 git push:提交到远端

git -bare init

git -bare init 与 git init 有什么不同

在初始化远程仓库时最好使用 git –bare init 而不要使用:git init。这样在使用 hooks 的时候,会有用处。

如果使用了 git init 初始化,则远程仓库的目录下,也包含 work tree,当本地仓库向远程仓库 push 时, 如果远程仓库正在 push 的分支上(如果当时不在 push 的分支,就没有问题), 那么 push 后的结果不会反应在 work tree 上, 也即在远程仓库的目录下对应的文件还是之前的内容,必须得使用 git reset –hard 才能看到 push 后的内容.

git rm xxx -r

删除(递归),没有-r 会提示不安全

git checkout – xxx

命令 git checkout -- readme.txt 意思就是,把 readme.txt 文件在工作区的修改全部撤销,这里有两种情况:

一种是 readme.txt 自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是 readme.txt 已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次 git commitgit add 时的状态。

git switch

创建并切换到新的 dev 分支,可以使用:

1
git checkout -b <name>  ||  git switch -c <name>

git stash

对于所有分支而言, 工作区和暂存区是公共的。因为未 add 的内容不属于任何一个分支,未 commit 的内容也不属于任何一个分支;要想在分支间切换, 又不想又上述影响,可以用 git stash。要注意,在当前分支 git stash 的内容, 在其他分支也可以 git stash pop 出来,为什么? 因为:工作区和暂存区是公共的

git stash list

git stash 将现在的储存起来,git stash list 查看

还原

工作现场还在,Git 把 stash 内容存在某个地方了,但是需要恢复一下,有两个办法:

  1. 一是用 git stash apply stash@{xxx}恢复,但是恢复后,stash 内容并不删除,你需要用 git stash drop来删除;

  2. 另一种方式是用 git stash pop,恢复的同时把 stash 内容也删了

git merge (||–no-ff||–squash)

通常,合并分支时,如果可能,Git 会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。 –no-ff:不使用 fast-forward 方式合并,保留分支的 commit 历史 –squash:使用 squash 方式合并,把多次分支 commit 历史压缩为一次

git cherry-pick

在 master 分支上修复的 bug,想要合并到当前 dev 分支,可以用 git cherry-pick <commit>命令,把 bug 提交的修改“复制”到当前分支,避免重复劳动。

git branch -D

如果要丢弃一个没有被合并过的分支,可以通过 git branch -D <name>强行删除

git checkout -b dev origin/dev

创建远程 origin 的 dev 到本地 dev

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

git rebase

rebase 操作前后,最终的提交内容是一致的。

把分叉的提交历史“整理”成一条直线,看上去更直观。缺点是本地的分叉提交已经被修改过了。

rebase 操作可以把本地未 push 的分叉提交历史整理成直线;从不对已推送至别处的提交执行变基操作。 因为 rebase 会改变提交历史记录,这会影响到别人使用这一远程仓库。

rebase 的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。

git 列表

Git 英文官网

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2018-2020 Jee
  • Visitors: | Views:

如果您觉得此文章帮助到了您,请作者喝杯咖啡吧~

支付宝
微信