天天看点

GIT的学习和使用git的命令git的工作原理git的一些错误处理

git的命令

git的常用命令

git checkout --file.txt 恢复修改的文件 举例说明能恢复的场景

修改a.txt 添加1行 aaa 然后 git add a.txt git commit -m “添加一行” a.txt

修改a.txt 再添加一行 bbb 然后 git add a.txt 此时执行 git checkout – a.txt 则能恢复到第一次commit后的状态

也就是说只能从暂存区恢复到工作去

已经commit则已经到本地的仓库了,不能checkout到最原始的状态了

git diff 的使用

git diff file.txt

git log的使用 git log显示的是从最近到最远的日志

首先显示的本地仓库的提交日志,其次显示的远程仓库的提交日志

如果嫌展示的信息太多的话,可以用 git log –pretty=oneline

git分支的操作

分支的查看

  • git branch 查看当前本地的分支 *指向的是当前的分支
  • git branch -a 查看当前的分支和远程的分支

分支的创建

  • git branch newbranch 创建一个新的分支,但是没有切换的新的分支上【基于当前的分支创建,注意当前的分支】
  • git checkout newbranch 切换到新的的分支上(checkout注意与恢复文件命令区别)
  • git checkout -b newbranch 创建一个本地分支并切换到这个分支上
  • git checkout -b newbranch origin/dev/audit

    在本地创建一个分支并关联到远程的dev/audit分支上;有两点需要解释

    • 如果不跟后面的关联指定则默认都是关联的是远程的master分支
    • 也可以直接使用git branch 再git checkout进行切换

分支的合并(详细参考文章https://juejin.im/post/5af26c4d5188256728605809)

  • git merge
  • 在一个分支上上进行了feature的开发,提交了三次,而master上也进行修改提交了两次,如下图所示。则将master上的修改合并到分支上
  • git merge master feature 或者是 git checkout feature再git merge master
  • 将master分支合并到当前分支 合并后会如下图所示
GIT的学习和使用git的命令git的工作原理git的一些错误处理
  • git rebase
  • rebase 的过程首先会产生 rebase 分支(master)的备份,放到(no branch )临时分支中。再将支线分支(branch)的每一次提交修改,以补丁的形式,一个个的重新应用到主干分支上。这个过程是一个循环应用补丁的过程,期间只要补丁产生冲突,就会停止循环,等待手动解决冲突。这个冲突指的是上一个合并后版本与补丁之间的冲突
    GIT的学习和使用git的命令git的工作原理git的一些错误处理
  • git rebase master 将master分支并入当前分支
  • 解决完冲突之后再进行git rebase --continue 解决下一个提交的冲突
  • 可以使用git reflog 获取提交的版本 进行恢复git reset 版本号
  • rebase 与merge的区别
  • -当需要保留详细的合并信息的时候建议使用git

    merge,特别是需要将分支合并进入master分支时;当发现自己修改某个功能时,频繁进行了git

    commit提交时,发现其实过多的提交信息没有必要时,可以尝试git rebase。

git的一些高级命令

git的工作原理

GIT的学习和使用git的命令git的工作原理git的一些错误处理

git的一些错误处理