【Git】

参考资料

IDEA中git操作

1、帮助文档: https://www.jetbrains.com/help/idea/set-up-a-git-repository.html

2、undo Commit vs Revert Commit: 参考 https://blog.csdn.net/qq_33637730/article/details/123256813

  undo Commit:跟没commit一样,销毁commit记录,代码不会被回退

  Revert Commit:新建一个Revert XX commit的commit记录,执行后,对应commit代码会被回退

 


 

Squash Merge: 合并原有多个Commit(合并后看不到),生成一个新Commit记录

Cherry-pick:选择合并指定修改

 


 

码云官网底部:

     

 1、Git 大全

   // 从工具安装下载,插件、服务搭建,命令行大全

   工具下载经验:国外工具在国内镜像的下载

   http://npm.taobao.org/mirrors/git-for-windows/

   搜索:taobao 镜像 git // 直接访问http://npm.taobao.org/mirrors会提示404

2、Git 命令学习

   动画演示,循序渐进学习命令,所见即所得

      

 3、狂神说 B站视频 

4、https://git-scm.com/book/zh/v2


Git下载失败

  报错:Please make sure you have the correct access rights and the repository exists.

  解决方案:https://blog.csdn.net/qq_38741986/article/details/100137267


 

Git环境配置

  • git config -l 查看全局和系统配置

     

  • git config --system -l 

     查看系统配置,系统默认配置

  • git config --global -l 

     查看用户配置

      

          默认保存在.gitconfig文件中,c盘 用户目录下文件保存

        

  设置用户配置

      

Git理论

  Git工作区域:工作目录-》暂存区Stage-》本地仓库(Local Repository)->远端git仓库(Remote Directory)

       

Git命令操作

      

 

  • 1. 本地仓库搭建

git init: 目录下新建仓库

git clone 路径   下载已有仓库
  •  2. 文件状态

    文件有4种状态

     

      命令:

# 查看所有文件状态
git status  
# 上传文件到暂存区
git add .   
# 批量增加
# git add --all # 提交暂存区文件到个人本地仓库,m代表message git commit
-m
  •  3. 文件.gitignore

     配置忽略不提交暂存区文件,如class文件

       

Git 分支branch操作

  • 1. 常用命令

# 列出所有本地分支
git branch
# 列出所有远程分支
git branch -r
# 新建一个分支,但仍停留在当前分支
git branch [branch-name]
# 新建一个分支,并切换该分支
git checkout -b [branch]
# 合并指定分支到当前分支
git merge [branch]
# 删除分支
git branch -d [branch-name]
# 删除远程分支
git push origin --delete [branch-name]
git branch -dr [remote/brach]
  •  2. 冲突解决

       git stash 本地已有修改  ->    拉取远端仓库(参考remote仓库操作) -> git  stash pop (恢复本地修改),得到冲突文件  ->    根据提示解决冲突,提交本地仓库 ->  提交远端仓库 

       // 推荐在IDEA上执行上述操作,尤其是修改冲突文件步骤

Git 远程remote仓库操作

  查看所有远程仓库

# 查看所有远程仓库信息
git remote -v
# 添加远端仓库
git remote add [shortname] [url]
# 删除远程仓库
git remote rm name  

# 取回远程仓库的变化,并与本地分支合并
$ git pull [remote] [branch]

   样例:

$ git remote -v
origin  https://github.com/tianqixin/runoob-git-test (fetch)
origin  https://github.com/tianqixin/runoob-git-test (push)

添加远端仓库
$ git remote add origin git@github.com:tianqixin/runoob-git-test.git

   “origin” 并无特殊含义:远程仓库名字 “origin” 与分支名字 “master” 一样,在 Git 中并没有任何特别的含义一样。 同时 “master” 是当你运行 git init 时默认的起始分支名字,原因仅仅是它的广泛使用, “origin” 是当你运行 git clone 时默认的远程仓库名字。 如果你运行 git clone -o booyah,那么你默认的远程分支名字将会是 booyah/master。


 

Git Head操作

  HEAD 是一个对当前检出记录的符号引用 —— 也就是指向你正在其基础上进行工作的提交记录。

  HEAD 总是指向当前分支上最近一次提交记录。大多数修改提交树的 Git 命令都是从改变 HEAD 的指向开始的。

  HEAD 通常情况下是指向分支名的(如 bugFix)。在你提交时,改变了 bugFix 的状态,这一变化通过 HEAD 变得可见。

  • 1. 初始状态

   

  •  2. 执行命令 git checkout c4,生成HEAD

   

Git 相对引用

   通过指定提交记录哈希值的方式在 Git 中移动不太方便。在实际应用时,不得不用 git log 来查查看提交记录的哈希值。

  哈希值在真实的 Git 世界中也会更长(译者注:基于 SHA-1,共 40 位)。哈希值可能是 fed2da64c0efc5293610bdd892f82a58e8cbc5d8

  比较令人欣慰的是,Git 对哈希的处理很智能。你只需要提供能够唯一标识提交记录的前几个字符即可。因此我可以仅输入fed2 而不是上面的一长串字符。

    • 使用 ^ 向上移动 1 个提交记录

    • 使用 ~<num> 向上移动多个提交记录,如 ~3

  • 1. 设置Header到指定位置

    样例1:通过分支名+^方式移动

        

    样例2:将 HEAD 作为相对引用的参照

     

    样例3:使用~数字进行多次回退

     

    4. 使用"!" 进行分支强制移动指定位置

     初始状态: master位于C4节点,通过相对引用,移动到C1节点

     

8. Git撤销变更

  撤销变更由底层部分(暂存区的独立文件或者片段)和上层部分(变更到底是通过哪种方式被撤销的)组成

  主要有两种方法用来撤销变更 —— 一是 git reset,还有就是 git revert

  • 1. git reset

     

              本地代码可通过 git reset --hard  xxx 方式回退到历史修改节点

  •  2. git revert

    虽然在你的本地分支中使用 git reset 很方便,但是这种“改写历史”的方法对大家一起使用的远程分支是无效的哦!

    初始状态:master位于C2节点

     

posted @ 2021-01-31 19:40  飞翔在天  阅读(73)  评论(0编辑  收藏  举报