配置user信息(必须)
git config --global user.name ‘your name’
git config --global user,email ‘[email protected]’
config的三个作用域
git config --local local只对某个仓库有效
git config --global global对当前用户所有仓库有效
仓库中local > global
显示config的配置,加 --list
这里是引用
git config --list --local
git config --list --global
两种场景
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 --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 查看全部分支提交历史
HEAD 根据分支的切换随着变动
config 当前用户的一些信息 如name email
refs 存放heads tag标签
git cat-file -t … 查找 文件类型 哈希值值
git cat-file -p … 查看 文件内容
git checkout 3d4731d90 我们切换到这个commit中 并没有创建分支 会进入分离头指针的状态 当我们 改动文件并commit时,如下,若不创建分支补充,会当作垃圾处理
git diff 哈希值 哈希值 对比两次提交的不同
HEAD HEAD^1 子目录和上一级父目录 之间的差异
HEAD HEAD~n 子目录和上n极父目录 之间的差异
git branch -d 分支名
-D 清理
git commit --amend
git rebase -i 要合并分支的最底下的下一个commit
pick 改为 s合并到9c686的分支
最后写好合并的message
移动pick一行 将合并目标分支 写入 第一行 后面改为s
git diff --cached
查看暂存区差异
简单来讲,就是你现在在哪儿,HEAD 就指向哪儿
例如当前我们处于master分支,所以HEAD这个指针指向了master分支指针
git diff --具体文件 查看文件不同差异
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 会弹出堆栈的内容
将不需要的文件写入 .gitignore
加 / doc就是管理这个文件但是不管理 doc下的文件
ssh -keygen -t -rsa -b 4096 -C “邮箱”
id_rsa.pub
git remote -v 查看远程连接关联
git remote add github(名称) [email protected]
做完 可以Push 可以 fetch了
git fetch 分支
git branch -v 本地分支
git branch -va 远端也会显示
git push github -all
git merge -allow-unrelated-histories github/master
未完待结,,,因为现在还不需要用到这些 不过一些写的不错 给个传送门
git fetch
三剑客