一、优势
git提供三种(也可以说是四种)不同的记录状态
- 已修改modified=>红色
- 已暂存staged=>绿色的
- 已提交commited灰色(没有颜色)
-
配置SSH公钥
安装完git应该做的第一件事情
设置用户名称与邮箱地址,这很重要,因为每一个git提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改
通过—global选项,设置全局配置信息
git config —global user.name “你的姓名”
- git config —global user.email “你的邮箱”
- ssh-keygen -t rsa -C “你的邮箱” 生成秘钥
生成密钥之后再 我的电脑=>c盘=>用户=>用户信息=>.ssh=>id_rsa.pub(把密钥粘贴进去)
打印所有的config
-
打印指定config
-
创建仓库
git init 初始化仓库,会再当前文件夹下生成一个.git文件夹,非必要设置不要随便更改
- git status 来查看仓库文件状态
- git add 文件夹/文件/.来添加文件到暂存区
- git commit -m “提交信息”提交到本地仓库
- git push 提交到远程仓库
- git log 查看所有日志
- git log -oneline 查看简要日志
- git reflog 查看操作日志
- git commit —amend -m “新提交信息” 继续上次未提交成功后重新提交/覆盖上次提交的信息
- git rm <文件路径> 从git仓库与工作区中删除指定文件
- git rm —cached <文件路径>只删除git仓库中的文件
rm以后,需要commit这次操作,否则rm将保留再暂存区 git commit -m ‘修正的信息’
添加到远程仓库
git remote add <仓库> 仓库SSh地址
- 第一次推送分支git push -u orgin master
已建立关联后推送分支 git push origin master
撤销操作
从暂存区撤销一个指定文件 git reset HEAD 文件名称
- 从暂存区中,撤销所有文件 git reset HEAD .
该命令既可以用于回退版本 回退到指定的commitID版本 git reset —hard commitID
比较
- 比较工作区和暂存区 git diff文件
- 比较暂存区和仓库 git diff —cached [commitId] 文件
- 比较工作区和仓库 git diff commitId filename
比较仓库不同版本 git diff commitID1 commitId2
分支
查看分支 给it branch
- 创建分支 git branch 分支名称
- 切换分支 git checkout 分支名称
- 也可以使用 git checkout -b 分支名称 创建分支
- 分支合并:B合并到A,需要切换到A分支, git merge 被合并分支
- 查看已经合并的分支 git branch —merged
- 查看未合并的分支 git branch —no-morged
- 删除分支 如果分支为未合并状态,则不允许删除 git branch -d 分支名称
-
远程分支
提交到远程(分支)
git push origin [本地分支名称]:[远程分支名称]
远程先创建好分支然后拉取到本地
git checkout -b [本地分支名称] origin/[远程分支名称]
拉取远程分支到本地
git pull origin [远程分支名称]:[本地分支名称]
查看远程仓库
git remote show origin
查看本地分支
git branch
查看远程分支
git branch -r
查看所有分支
git branch -a
删除本地分支
git branch -d [本地分支名称]
删除远程分支
- git push origin —delete [远程分支名称]
- or
git push origin :[远程分支名称]
设置默认提交分支
- git branch —set-upstream-to=origin/[远程分支名称] [本地分支名称]
合并记录
合并 HEAD 前两个祖先记录
git rebase -i HEAD~2
变基操作(慎用)
git pull —rebase
解决乱码
git status 显示乱码
git config —global core.quotepath false
终端乱码
菜单 -> 设置 -> 文本 -> 本地 / 编码
或修改配置文件
[gui]
encoding = utf-8
#代码库统一使用utf-8
[i18n]
commitencoding = utf-8
log编码
[svn] <br /> pathnameencoding = utf-8
### 支持中文路径
[core]<br /> quotepath = false
### status引用路径不再是八进制(反过来说就是允许显示中文了)
五大分支 (不要动!!!)
master
生产分支
- 上线产品develop
准生产分支
- 备份昨天线上产品features
开发新功能分支
- 开发新功能hotfix
修改bug分支
- 打补丁修改细节等处理问题分支test
测试分支