git
设置用户名和邮箱(第一次设置就可以)
git config --global user.name "xxx"
git config --global user.email "xxx"
检查配置信息
#查看所有的全局配置项
git config --list --global
#查看指定的全局配置项
git config user.name
git config user.email
#获取帮助
git config -h
目录
*** 远程***
git基本操作
1.初始化仓库
#将当前目录转化为git仓库
git init
2.跟踪文件
git add index.html
git add .
3.提交更新
#单个文件提交
git commit -m "提交信息"
#跳过add,把所有跟踪文件一起提交
git commit -a -m "提交信息"
4.查看状态
git status
git status -s
git status -short
5.推送到远程仓库
git push origin(远程仓库别名) master(分支)
6.从远程仓库拉取同步文件
git pull origin(远程仓库别名) master(分支)
工作流程
**工作区->暂存区->git仓库 **
移除暂存区文件
git reset HEAD 要移除文件名
1.移除文件
#从git仓库和工作区同时移除index.html文件
git rm -f index.html
#从git仓库移除,但保留在工作区中
git rm --cached index.html
忽略文件
- 以 # 开头是注释
- 以 / 结尾是目录
- 以 / 开头防止递归
- 以 ! 开头表取反
glob模式
-
星号 * 匹配零个或多个任意字符
-
[abc] 匹配任何一个列在方括号中的字符 (此案例匹配一个 a 或匹配一个 b 或匹配一个 c)
-
问号 ? 只匹配一个任意字符
-
在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配
所有 0 到 9 的数字)
-
两个星号 ** 表示匹配任意中间目录(比如 a/**/z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等)
.gitignore文件
#忽略所有.a文件
*.a
#但跟踪所有lib.a文件
!lib.a
#只忽略当前目录下/TOOO文件
/TOOO
#忽略任何目录下名为build的文件夹
build/
#忽略doc目录下的任何.txt文件,但不忽略doc子目录下的.txt文件
doc/*.txt
#或略doc目录下包括子目录的.pdf文件
doc/**/*.pdf
查看提交历史
#列出所有提交历史,最近提交在最上面
git log
#只展示最新两条提交历史
git log -2
#在一行上显示最近两条提交历史信息
git log -2 --pretty==oneline
#在一行上展示最近两条历史信息,并自定义格式输出
# %h 提交的简写哈希值 | %an 作者名 | %ar 作者修订日期 | %s提交说明
git log -2 --pretty=format:'%h | %an | %ar | %s'
回退到固定版本
#在一行上展示所有的提交历史
git log --pretty=oneline
#根据指定id回退到指定版本
git reset --hard id号
#回退到旧版本,查看所有历史
git reflog --pretty-online
#旧版本,显示最近两条提交历史信息
git reflog --pretty==oneline
检测ssh key是否配置成功
ssh -T git@github.com
将远程仓库克隆到本地
git clone 远程仓库地址
git分支
1.查看分支
git branch
2.创建分支
git branch 分支名
3.切换分支
git checkout login
4.快速创建和切换
#-b 创建一个新分支
#checkout 切换到刚才建的分支
git checkout -b 分支名
===
git branch 分支名称
git checkout 分支名称
5.合并分支(切换到其他分支,再合并)
#1.切换到master分支
git checkout master
#2.在master分支运行命令,将分支代码合并到master分支
git merge login
6.删除分支(切换到其他分支,再删除)
git branch -d 分支名
7.合并冲突(在两个不同的分支中,对同一个文件进行了不同的修改,Git 就没法干净的合并它们。 此时,我们需要打开这些包含冲突的文件然后手动解决冲突。)
#打开冲突文件,手动解决,在执行提交
git add .
git commit -m "解决冲突文件"
远程
1.推送
# -u 表示把本地分支和远程分支进行关联,只有再第一次推送时,需要带-u参数
git push -u 远程仓库别名 本地分支:远程分支名
#案例:
git push -u origin payment:pay
git push origin payment:pay
#如果希望远程分支的名称和本地分支保持一致,可以简化
git push -u origin payment
2.查看远程仓库分支列表
git remote show 远程仓库名
3.下载分支
#从远程仓库下载分支到本地,本地分支名和远程相同
git checkout 远程分支名
#从远程仓库下载分支到本地,本地分支名和远程不同
git checkout -b 本地分支名 远程仓库名/远程分支名
4.拉取
git pull
git pull origin(远程仓库别名) master(分支)
5.删除远程分支
#删除远程仓库中指定分支
git push 远程仓库名 --delete 远程分支名
#示例:
git push origin --delete pay