玖叶教程网

前端编程开发入门

Git 相关概念和常用指令

Git 相关术语

Git 中不可避免会遇到下面几个术语,不搞清楚它们,后面只会更懵逼。

  • 工作区(Working Directory)
  • 暂存区(Stage/Index)
  • 本地历史仓库(Repository)
  • 远程仓库(Remote)

Git的工作流程

  • 将远程代码仓库clone下来,在本地建立的一个代码仓库;
  • 修改项目代码,如修改bug,增加新的功能等;
  • Pull,将远程仓库的项目下载到本地;
  • 等你写好自己的代码后,先add/commit到本地的仓库;
  • 最后push到远程的代码仓库中。

Git常用指令

  • 常用查看指令

git status 查看仓库当前的状态 ;

git diff 文件名查看对文件做什么修改;

git log显示从最近到最远的提交日志 ;

git log –pretty=oneline 简化日志输出的显示信息,commit id很长;

git reflog 记录你的每一次命令,最先显示的是这个命令执行之后的版本的版本号的前七位,这样就算你清屏了或者重启了,也能找到某个版本的版本号,就可以轻松回退到那个版本;

git branch 查看当前所在分支。git branch命令会列出所有分支,当前分支前面会标*号;

git log –graph –pretty=oneline –abbrev-commit用带参数的git log可以看到分支的合并情况。用git log –graph命令可以看到分支合并图;

git remote 查看远程库的信息 ;

git remote -v 显示更为详细的信息;

  • 常用修改指令

git add readme.txt添加,但是不提交;

git commit -m “提交描述”提交,只有add后提交才有效。”改文件->add文件->再改->提交”,则第二次修改无效,不会被提交,只会成功提交第一次的修改;

  • 撤销修改和版本回退

git checkout – 文件名把没暂存(即没add)的干掉,或者说,丢弃工作区,回到到暂存状态 ;

git reset HEAD 文件名把暂存的状态取消,工作区内容不变,但状态变为“未暂存”;

简单来说,没有add过的修改,只需要git checkout – 文件名即可撤销;add 过的修改,先git reset HEAD 文件名变成没add 过的修改,再git checkout – 文件名撤销;

git reset –hard HEAD^ 会回退到上一个版本 ;

git reset –hard 某版本号前几位通过命令行上的历史信息;

  • 解决冲突

假设在master分支和feature1分支对同一文件做了修改 git merge feature1 在master分支上执行该命令,与feature1分支合并。这种情况下,Git无法执行“快速合并”,只能试图把各自的修改合并起来,但这种合并就可能会有冲突,果然冲突了!Git告诉我们,readme.txt文件存在冲突,必须手动解决冲突后再提交。git status也可以告诉我们冲突的文件 ;

合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息;

git merge –no-ff -m “merge with with no-ff” dev准备合并dev分支,注意–no-ff参数表示禁用Fast forward,因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去;

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言