当前位置:   article > 正文

深入git学习_git commit stage

git commit stage

git在项目的协同开发上起到了很关键的作用。
下面说一下git常用的一些命令:

  1. clone远程分支:git clone 分支地址
  2. 创建及切换分支:git checkout -b 分支名
  3. 添加文件到分支上:git add .
  4. 提交文件到本地:git commit -m '提交说明'
  5. 提交到远程分支:git push
  6. 拉取远程分支:git pull
  7. 查看本地分支:git remote
  8. 查看提交日志(查看版本号):git log
  9. 回滚代码:git reset --hard 版本号(会修改历史提交中的这个版本)
  10. 回滚代码:git revert -n 版本号(不会修改历史提交中的这个版本)
  11. git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit看似达到的
  12. 效果是一样的,其实完全不同.
  13. 上面我们说的如果你已经push到线上代码库, reset 删除指定commit以后,你git push可能导致一大堆冲
  14. 突.但是revert 并不会.
  15. 如果在日后现有分支和历史分支需要合并的时候,reset 恢复部分的代码依然会出现在历史分支里.但是
  16. revert 方向提交的commit 并不会出现在历史分支里.
  17. reset 是在正常的commit历史中,删除了指定的commit,这时 HEAD 是向后移动了,而 revert 是在正常的
  18. commit历史中再commit一次,只不过是反向提交,他的 HEAD 是一直向前的.
  19. 分支合并(a分支合并到master分支上):在master上进行git merge a命令

# 2019.9.22
在公司最近的工作中由于过往对git使用过于简单导致没有深入去认识git的原理和使用,最后的结果就是在和同事的配合之间出现了,大量的非技术问题且在这些问题上花费了大量的时间。
首先先给大家推荐一个git原理的中文网站
下面是几个git相关的原理性的东西理解这几个概念有助于更好的学习和使用git
git的文件形式主要有三种
已提交committed(已经commit到本地)
已修改modified(ctrl+s保存了修改的代码)
已暂存staged(代码写完发现有冲突,先暂存起来)
git的工作区域分三种(可与三种文件形式对应起来)
工作目录(对应文件形式已修改)
暂存区(已暂存的文件)
git仓库(对应文件形式已提交)
git的两种文件形式
已跟踪(仓库中已有的文件)
未跟踪(仓库中没有的文件例如新建文件)
git的4个生命周期
untracked(未跟踪即没有add的文件)
unmodified(未修改即在仓库中但是没有做过任何修改的文件)
modified(已修改即文件已在仓库中且修改但是还没有add的文件)
staged(暂存即已经add但是还未commit提交的文件)


变基和merge的区别
git变基将某一分支的改动迁移到另一分支和合并分支是一个意思(例如要将a分支的修改内容合并到master,这时候要在a分支上执行变基)。
git合并分支是在master分支执行合并命令(例如要将a分支的修改内容合并到master,这时候要在master分支上执行合并命令)。
变基会使得提交记录看起来更加整洁,这是优点也是一个不足。


常用的git命令

  1. git命令
  2. git status查看文件状态
  3. git add <file>添加到暂存区
  4. git commit -m '说明'提交到本地
  5. git push提交到远程仓库
  6. git commit --amend重新提交前一个提交
  7. git reset <--soft | --mixed | --hard> <file>撤销暂存区的文件
  8. hard重置stage区和工作目录
  9. soft保留工作目录,并把重置 HEAD 所带来的新的差异放进暂存区
  10. mixed保留工作目录,并清空暂存区(默认)
  11. git checkout <file>撤销未暂存的修改文件
  12. git checkout <branch> <file>将某个文件回退到指定提交
  13. git log日志(hash码)
  14. git remote -v远程仓库地址
  15. git remote add <name> <gitUrl>添加远程仓库
  16. git fetch <name>拉取远程仓库
  17. git push <remote name> <branch name>推送到某远程仓库的某一个分支
  18. git remote show <remote name>查看某个远程仓库
  19. git remote rename <old remote name> <new remote name>修改仓库名
  20. git tag -a <name> -m '说明'创建附注标签(比如版本号)
  21. git tag <name>创建轻量标签(比如版本号)
  22. git tag -a v1.2 <版本hash值>创建历史提交的标签
  23. git push <remote name> <推送的标签>推送标签到远程仓库
  24. git push <remote name> --tags推送所有表签到远程仓库
  25. git tag -d <name>删除标签
  26. git push origin :refs/tags/<name>删除远程仓库标签
  27. git branch <name>创建分支
  28. git checkout<name> 切换分支
  29. git checkout -b <name>创建并切换到分支
  30. git branch -d <name>删除分支
  31. git push <remote name> --delete <name>删除远程分支
  32. git branch --merged合并到当前分支的分支
  33. git branch --no-merged没有合并到当前分支的分支
  34. git rebase <name>变基操作(当前分支合并到name分支和merge的当前分支不同)
  35. git merge <name>将name分支合并到当前分支

下面是我工作中又遇到的情况:
情况一:当和同事协同开发的使用同时修改到了同一个文件的时候比如router路由时会发生冲突这时候要善于使用git status查看文件状态来解决具体的冲突。

这里推荐大家一个git可视化工具Sourcetree,这个工具非常好用但是国内不好下载需要翻墙。
持续更新中...
2020.12.17

  1. git回退版本
  2. 结果线上被强推的版本回到上面重置提交的这个版本
  3. 1.reset(不推荐):线上该次提交前的提交记录全部都没有
  4. 1.sourse tree
  5. 1.重置提交
  6. 2.推送 -> 强制推送
  7. 2.命令行
  8. 1.git log 获取commitid
  9. 2.git reset --hard commitID 重置到某次提交
  10. 3.git push origin commitID --force
  11. 2.revert(推荐):线上的提交记录还在并生成一个新的提交记录
  12. 1.sourse tree
  13. 1.回滚移交
  14. 2.提交
  15. 3.推送
  16. 2.命令行
  17. 1.git log
  18. 2.git revert -n commitID
  19. 3.git commit -m xxxx
  20. 4.git push
  21. 检出:改变HEAD指针的指向
  22. git checkout commitId/branch 检出分支或某次提交
  23. 重置提交
  24. git reset --soft,--mixed,--hard commitId
  25. --soft:保留工作目录和暂存区中的内容,并把重置 HEAD 所带来的新的差异放进暂存区。
  26. --mixed:保留工作目录,并清空暂存区
  27. --hard:重置stage区和工作目录

2021.7.7

  1. git暂存功能:该操作将当前还没有暂存的文件暂存到脏目录中,脏目录中的文件不会记录到git记录中。
  2. 应用场景:当我们开发某一功能,产品狗需要我们优化某个功能,但是我们暂时不希望提交当前的代码就可以使用暂存功能,等功能优化好后再将脏目录的修改取出来继续开发。
  3. git stash save <name> 保存当前的修改到脏目录的<name>
  4. git stash list 查看脏目录列表
  5. 取出脏目录中的修改
  6. 1.git stash pop stash@{index} 取出索引为index的脏目录,并且删掉这条脏目录
  7. 2.git stash apply stash@{index} 取出索引为index的脏目录,但是保留这条脏目录
  8. git stash drop stash@{index} 删除索引为index的这条脏目录
  9. git stash clear 删除所有的脏目录

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/637963
推荐阅读
相关标签
  

闽ICP备14008679号