常用命令
-
获取命令简要说明
git <参数> -h
-
列出 Git 所有的配置
git config --list
-
检查 Git 的某一项配置
git config <变量名>
-
在文件夹下初始化Git仓库
git init
-
克隆仓库
git clone {url}
-o <自定义仓库名>
-b <分支名>
-
删除库(勿用)
rm -rf <库名>
-
查看仓库中的文件状态
git status
详细说明 -
暂存文件
git add <文件名>
-
忽略暂存文件配置
在文件夹下创建一个.gitignore
文件,将忽略暂存的文件写入其中
格式规范 -
提交更新
git commit
-m '提交信息'
增加提交的信息
-a
对跟踪文件的暂存与提交同时进行 -
移除暂存区文件
从Git中删除修改过的、暂存区里的、本地的文件
git rm <文件名>
-f
强制删除,
--cached
本地文件不删除手动删除被Git管理的文件,Git依旧会有记录
-
重命名文件
git mv <原文件名> <新文件名>
-
查看提交历史
git log
详细内容 -
覆盖提交(谨慎使用)
git commit --amend
覆盖上一次提交的记录,完成本次提交 -
取消暂存(谨慎使用)
git reset HEAD <文件名>
-
取消修改(谨慎使用)
git checkout -- <文件名>
远程仓库的使用
-
列出每一个远程仓库简写名
git remote
-
列出每一个远程仓库的简写名和URL
git remote -v
-
添加远程仓库
git remote add <仓库名> <url>
-
从远程仓库中拉取
git fetch <仓库名>
在更新的拉取操作后要合并分支
git merge
-
推送到远程仓库
git push <仓库名> <分支名>
git push <仓库名> <本地分支名>:<远程分支名>
-
查看远程仓库
git remote show <仓库名>
-
修改远程仓库简写名
git remote rename <原名> <新名>
-
删除远程仓库
git remote rm <仓库名>
标签
- 列出标签
git tag -l <"筛选字符串,通配符">
可加入正则表达式筛选标签 - 创建标签
- 附注标签(- a)
git tag -a <标签名> -m "标签信息"
- 轻量标签
git tag <标签名>
- 补标签
git tag -a <标签名> <对应提交校验和>
- 附注标签(- a)
- 将标签推送到远程仓库
- 指定标签
git push <仓库名> <标签名>
- 所有标签
git push <仓库名> --tags
- 指定标签
- 删除标签
git tag -d <标签名>
- 从远程仓库删除标签
git push <仓库名> --delete <标签名>
- 从远程仓库删除标签
- 查看标签所指向的文件版本
git checkout <标签名>
(非必要,不要用)
git show <标签名>
分支
-
创建一个分支
git branch <分支名>
-
切换分支
git checkout <分支名>
-
创建并切换分支
git checkout -b <分支名>
-
合并分支
在要合并入的分支下操作
git merge <被合并的分支名>
-
删除分支
git branch -d <分支名>
当要删除的分支未合并,会失败
强制删除(谨慎使用)
git branch -D <分支名>
-
合并冲突
查看合并状态
git status
退出合并状态
git merge --abort
- 各分支都有对一个文件内容进行修改过,合并会造成冲突
- 合并中间态,对相应冲突文件进行修改
在冲突文件中会标识: <<<<<<< HEAD 冲突内容1 ======= 冲突内容2 >>>>>>> <分支名> 解决办法: - 将包裹区域全部删除,输入留下的内容(可选留冲突内容)
- 解决冲突后的文件需要
git add <文件名>
标记冲突已解决,并提交git commit
-
分支管理
查看当前所有分支
git branch
查看每一个分支最后一次提交
git branch -v
查看已合并到当前分支的分支
git branch --merged
查看未合并到当前分支的分支
git branch --no-merged
-
跟踪分支
查看所有跟踪分支
git branch -vv
设置远程跟踪分支
git checkout -b <本地分支名> <仓库名>/<分支名>
git branch -u <仓库名>/<分支名>
设置远程跟踪分支后,每次推送git push即可
-
删除远程分支
git push <仓库名> --delete <分支名>
变基
变基:提取当前分支中引入的补丁和修改,在目标分支上应用一次。
与合并的不同点:合并需要保存所有分支修改的历史记录版本(多分支),而变基会将分支上的修改完全递交给另一个分支,在历史记录版本上只会有一个分支的记录(单分支)。
- 到当前分支上执行
将提交到当前分支上的所有修改都移至目标分支上
git rebase <目标基底分支>
当有多个分支,只想变基其中两支,而排除一支
--onto <目标基底分支> <需排除的分支> <当前分支>
回到目标分支
执行git merge <之前分支名>
快速合并
变基完成