参考资料
码云官网底部:
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环境配置
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
配置忽略不提交暂存区文件
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。
HEAD 总是指向当前分支上最近一次提交记录。大多数修改提交树的 Git 命令都是从改变 HEAD 的指向开始的。
1. 初始状态
2.
Git 相对引用
通过指定提交记录哈希值的方式在 Git 中移动不太方便。在实际应用时,不得不用 git log
来查查看提交记录的哈希值。
哈希值在真实的 Git 世界中也会更长(译者注:基于 SHA-1,共 40 位)。哈希值可能是 fed2da64c0efc5293610bdd892f82a58e8cbc5d8
。
比较令人欣慰的是,Git 对哈希的处理很智能。你只需要提供能够唯一标识提交记录的前几个字符即可。因此我可以仅输入fed2
而不是上面的一长串字符。
-
-
使用
~<num>
向上移动多个提交记录,如
1. 设置Header到指定位置
样例1:通过分支名+^方式移动
样例2:
样例3:使用~数字进行多次回退
4. 使用"!" 进行分支强制移动指定位置
初始状态: master位于C4节点,通过相对引用,移动到C1节点
撤销变更由底层部分(暂存区的独立文件或者片段)和上层部分(变更到底是通过哪种方式被撤销的)组成
主要有两种方法用来撤销变更 —— 一是 git reset
,还有就是 git revert
1. git reset