1. 基础配置
git config --global user.name “longletian”
git config --global user.email "2877617866@qq.com"
git config --list | 查看配置文件
2. git基础
git init | 初始化文件夹
git add * | git add git.md | 实现对指定文件的追踪
git commit -m "git教程" | 提交到仓库 并注释
git remote add origin https://git.oschina.net/liuqiqiang/gitTest.git
git pull origin master
git push origin master
解决问题 failed to push some refs to 'git@github.com:longletian/EFdemo.git'
//需要添加此命令进行代码合并 git pull --rebase origin master
git clone https://github.com/longletian/git.git | 获取现有的仓库
工作目录的每个文件都不外乎两种状态 已跟踪和未跟踪
git status 或者 git status -s | 检查当前文件状态
新添加的未跟踪文件有??标记
添加到暂缓区的文件有A标记
修改过的文件前面有M标记
出现在左边的M表示该文件被修改了并放入暂存区
出现在右边的M表示该文件被修改了没有放入暂缓区
创建 .gitignore | 忽略文件
规范 *.[oa] 所有以.o或.a结尾的文件
- 所有空行或者以
#
开头的行都会被 Git 忽略。- 可以使用标准的 glob 模式匹配。
- 匹配模式可以以(
/
)开头防止递归。- 匹配模式可以以(
/
)结尾指定目录。- 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(
!
)取反。``
git diff | git diff -cached 查看已暂存的将要添加到下次提交的内容 | 查看已暂缓和未暂缓的修改
git diff 只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动 | git diff 注意点
git commit -m "提交信息" | 提交更新
git commit -a -m "一并提交" Git就会自动把所有已经跟踪的文件暂存起来一并提交
| 跳过使用暂存区域
git rm git.md | git rm -f git.md 强制删除 | 移出文件
git rm --cached git.md | 让文件保留在磁盘,但不让Git继续追踪
git mv file_from file_to | 对文件改名
git log | git log -p -2 显示每次提交的内容差异 -2 仅显示最近两次提交 -stat 每次提交的简略统计信息 | 查看提交历史
git log -pretty=oneline |short、full、fuller | 指定不同默认格式的方法展示提交历史
git log --pretty=format:"%h - %an, %ar : %s" | 定制要显示的记录格式
git commit -amend | 撤销操作
git reset HEAD git.md | 取消暂存的文件
git checkout - git.md | 撤销对文件的修改
git remote | -v 显示需要读写远程仓库使用的git保存简写 | 查看远程仓库
git remote add <shortname> <url> | 添加远程仓库
git fetch [remote-name] | 从远程仓库中抓取和拉取
git push origin master | 推送到远程仓库
git remote show [remote-name] | 查看远程仓库
git remote rename pb paul 修改pb 重命名paul |git remote rm paul | 远程仓库的移除与 重命名
git tag |打标签
git 使用两种主要类型的标签 轻量标签 (一个特定提交的引用)与附注标签
git tag -a v1.4 -m "my version 1.4" | -m 指定了一条将会存储在标签中的信息 | 附注标签
git show v1.4 | 查看标签信息与对应的提交信息
git push origin [tagname] | 共享标签
git push origin -tags | 推送所有不在仓库服务器的标签
git tag -d [tagname] | git tag -d v1.4-lw 删除轻量级标签 | 删除标签
git checkout 2.0.0 查看某个标签所指向的文件版本 仓库会处于“分离头指针状态” | 检出标签
3. 分支简介(必杀技特技)
git仓库中有五个对象、
三个blob对象(保存着文件快照)
一个树对象(记录着目录结构和blob对象索引)
一个提交对象(包含着指向前述树对象的指针和所有提交信息)
git branch test | 会在当前所在的提交对象创建一个指针 (创建分支)
git log -oneline -decorate |查看各个分支所指的对象
git checkout test | 分支切换
git log -oneline -decorate -graph --all | 输出你的提交历史,各个分支的指向以及项目的分支分叉
git checkout -b iss53 | 创建分支并同时切换到那个分支
git checkout master
git merge hotfix | 运行你的测试,确保正确,并合并你的master分支布署线上
git branch -d hotfix | 删除分支
git merge iss53 | 合并分支
git mergetool | 可视化合并工具
git branch | -v 查看每个分支的最后一个提交 | 分支管理
git branch -merged | -no-merged 查看未合并工作的分支 | 查看哪些分支已经合并到当前分支
git ls-remote | 显示的获取远程引用的完整列表
git remote show | 获取远程分支的更多信息
获取分支信息方法 利用(远程跟踪分支),是远程分支状态的引用
git push origin -delete serverfix | 删除远程分支
git rebase -onto master server client | 将 client 中的修改合并到主分支并发布,但暂时并不想合并 server 中的修改
git rebase [basebranch] [topicbranch] | 命令可以直接将特性分支(即本例中的 `server`)变基到目标分支(即 `master`)上