3.使用Git之前需要做的最小配置
配置user信息(必须)
git config --global user.name ‘your name’ git config --global user,email ‘your_email@domain.com’
config的三个作用域
git config --local local只对某个仓库有效 git config --global global对当前用户所有仓库有效 仓库中local > global 显示config的配置,加 --list
这里是引用 git config --list --local git config --list --global
建Git仓库
两种场景 1.把已有的项目代码放入到Git管理
cd 到项目代码所在文件夹 git init
2.新建的项目直接用Git管理
cd 到某个文件夹 git init your_project cd your_project
往仓库添加文件
将文件添加到暂存区,此时文件已经被git管理,可以暂存 也可以回退,添加之后在提交到仓库分支
git add 添加所需文件 至 暂存区 git commit -m ‘提交描述’ git status 查看仓库状态 git log 查看历史提交 git add -u 在已经添加到暂存区的文件,一并在此添加管理(避免修改了这些文件,繁琐添加,所以 -u 一并处理) git reset -hard 清楚暂存区步骤但不影响commit 可git log查看 git mv 暂存区某个文件 重命名
git log查看版本演变历史
git log 查看当前分支的历史
git log --oneline 浓缩一行 根据commit内容去查看
git log -n4 --oneline 选中最近的4个查看 git branch -v 查看所有分支
git check out -b temp 创建分支temp并进入分支 并指定commit 在此commit下 创建分支 并进入分支 此提交前的记录保持 提交后的 就忽略了
git commit -am ‘add test’ 直接跳过暂存区 直接提交到历史版本 git log --all 查看全部分支提交历史
git log --all -graph 图形界面 查看提交版本记录 并体现父子关系
gitk 通过图形界面工具查看版本历史
探秘
HEAD 根据分支的切换随着变动 config 当前用户的一些信息 如name email refs 存放heads tag标签
git cat-file -t … 查找 文件类型 哈希值值 git cat-file -p … 查看 文件内容
commit tree blob的关系
树一树 tree的个数
分离头指针注意事项
git checkout 3d4731d90 我们切换到这个commit中 并没有创建分支 会进入分离头指针的状态 当我们 改动文件并commit时,如下,若不创建分支补充,会当作垃圾处理
进一步理解HEAD和branch
git diff 哈希值 哈希值 对比两次提交的不同 HEAD HEAD^1 子目录和上一级父目录 之间的差异 HEAD HEAD~n 子目录和上n极父目录 之间的差异
删除分支
git branch -d 分支名 -D 清理
修改最近commit的message
git commit --amend
修改老旧commit的message
git rebase -i commit哈希值 pick更改为2 保留commit只改变他的message
连续多个commit合并
git rebase -i 要合并分支的最底下的下一个commit
pick 改为 s合并到9c686的分支 最后写好合并的message
间隔多个commit合并
移动pick一行 将合并目标分支 写入 第一行 后面改为s
怎么比较暂存区和HEAD所含文件的差异
git diff --cached 查看暂存区差异
简单来讲,就是你现在在哪儿,HEAD 就指向哪儿 例如当前我们处于master分支,所以HEAD这个指针指向了master分支指针
怎么比较工作区和暂存区所含文件的差异
git diff --具体文件 查看文件不同差异
如何让暂存区恢复成和HEAD的一样
git reset HEAD 恢复这个commit这个位置的所有文件 将暂存区清空
如何让工作区恢复成和暂存区的一样
git checkout – 哪个文件
变工作区用checkout,变暂存区要用reset
怎样取消暂存区部分文件的更改
git reset HEAD – 文件名
消除最近的几次提交
git reset --hard commit哈希值
看看不同提交的指定文件的差异
git diff temp(提交1 分支 1) master(提交2 分支2) – 文件
正确删除文件的方法
git rm 具体文件名
开发中临时加塞了紧急任务怎么处理
git stash 执行之后 你的工作区的内容 会暂放这 暂时是干净的
git stash apply 恢复 但 堆栈的内容不会消失 git stash pop 会弹出堆栈的内容
如何指定不需要的Git管理的文件
将不需要的文件写入 .gitignore 加 / doc就是管理这个文件但是不管理 doc下的文件
如果将Git仓库备份到本地
常用传输协议
git remote add 文件 文件路径 桥梁 搭建联系 git push 文件 分支 同步
创建 配置github
ssh -keygen -t -rsa -b 4096 -C “邮箱” id_rsa.pub
把本地仓库同步到github
git remote -v 查看远程连接关联 git remote add github(名称) git@github.com
做完 可以Push 可以 fetch了
git fetch 分支 git branch -v 本地分支 git branch -va 远端也会显示 git push github -all
git merge -allow-unrelated-histories github/master
未完待结,,,因为现在还不需要用到这些 不过一些写的不错 给个传送门
git fetch 三剑客
|