git 命令
- 第一次使用git 必须设置用户信息
git config --global user.name luohaozhe
- 设置用户邮箱 ---设置成功后可以在本机找到用户目录下的.git开头文件查看
git config --global user.email luohaozhe@gail
常看文件状态
git status
当文件在本地时为红色
当使用`git add . 将目录下所有文件提交到工作区后 查看状态色为绿色
git add "文件名" 提交单个文件 将文件提交到暂存区
git commit -m "日志" "文件名"` 可不写文件名默认提交所有文件
nothing to commit, working tree clean 显示没有东西需要修改
查看版本信息
git reflog git log
查看文件信息
cat 文件名
修改文件
vim 文件名
vim 基本命令
---按insert 键进入 插入模式(Insert mode)编辑 不可删除
---插入模式(Insert mode)按Esc键切换到「命令行模式(command mode)可删除
---命令行模式(command mode 输入: 进入「Last line mode」
---输入wq退出vim并保存输入q直接退出
---文件修改后颜色变为红色需要再次提交到暂存区
版本穿梭
git reflog 1.版本号信息 2.版本穿梭`
git reset --hard "版本号"
分支
---查看分支
git branch -v
---创建分支
git branch "分支名"
---切换分支
git checkout 分支名
合并分支
---1.先切换到你需要合并到分支上
---2.输入`git merge "分支名"`
---合并冲突(两个分支上、同一文件都进行了修改git不知道用哪个、需要人为确认 )
---解决: 打开文件 有提示 <<head 去、当前分支修改内容 ==== 合并分支修改内容 HEADF>>>
---删除符号和相互分支上的内容。组成新的文件
---注意提交修改后的文件到本地库是 `git commit -m “日志”` 不要带文件名会报错。
---git push 重新提交
github 创建远程库
---查看远程库别名
git remote -v
---创建远程库别名
git remote add "别名" 仓库地址
本地库代码推送到远程库
git push -u 别名(没起直接放链接) 分支名
本地拉取远程库
git pull 别名 分支
克隆项目
git clong 项目地址
邀请团队协作
生成预览链接(已经npm run build 生成dist文件夹)
1.创建gh-pages分支
git checkout -b gh-pages
2.提交dist文件夹到本地库
git add -f dist
3.提交dist到暂存区
git commit -m 'first commit'
4.提交dist到远程库
git subtree push --prefix dist origin gh-pages
Git 命令清单
新建 git 仓库
sh
在当前目录新建一个 Git 仓库
git init
新建一个目录,将其初始化为 Git 仓库
git init [project-name]
显示当前的Git配置
git config --list
停止追踪指定文件并保留在工作区
git rm --cached [文件路径]
删除工作区文件并且提交到暂存区
git rm [文件路径]
代码提交
提交暂存区到仓库区
git commit -m [提交信息]
替换上一次 commit(如无代码改动,就重写上一次 commit 的提交信息)
git commit --amend -m [提交信息]
分支
列出所有本地分支
git branch
列出所有远程分支
git branch -r
列出所有本地分支和远程分支
git branch -a
新建一个分支,但依然停留在当前分支
git branch [分支名]
新建一个分支,并切换到该分支
git checkout -b [分支名]
新建一个分支,指向指定commit
git branch [分支名] [commit id]
新建一个分支,与指定的远程分支建立追踪关系
git branch --track [分支名] [远程分支名]
新建一个空白分支
git checkout --orphan [分支名]
切换到指定分支,并更新工作区
git checkout [分支名]
切换到上一个分支
git checkout -
合并指定分支到当前分支
git merge [分支名]
删除分支
git branch -d [分支名]
删除远程分支
git push origin --delete [分支名]
git branch -dr [remote/分支名]
标签
列出所有 tag
git tag
根据当前 commit 创建一个 tag
git tag [tag]
根据指定 commit 创建一个 tag
git tag [tag] [commit id]
删除本地 tag
git tag -d [tag]
删除远程 tag
git push origin :refs/tags/[tagName]
查看 tag 信息
git show [tag]
提交指定 tag
git push [remote] [tag]
提交所有 tag
git push [remote] --tags
新建一个分支,指向某个tag
git checkout -b [分支名] [tag]
查看信息
显示变更的文件
git status
显示当前分支的版本历史
git log
显示commit历史,以及每次commit发生变更的文件
git log --stat
搜索提交历史,根据关键词
git log -S [keyword]
显示某个文件的版本历史,包括文件改名
git log --follow [文件路径]
git whatchanged [文件路径]
显示指定文件相关的每一次diff
git log -p [文件路径]
显示过去5次提交
git log -5 --pretty --oneline
显示所有提交过的用户,按提交次数排序
git shortlog -sn
显示指定文件是什么人在什么时间修改过
git blame [file]
显示暂存区和工作区的差异
git diff
显示工作区与当前分支最新 commit 之间的差异
git diff HEAD
显示今天你写了多少行代码
git diff --shortstat "@{0 day ago}"
显示当前分支的最近几次提交
git reflog
提交sh
下载远程仓库的所有变动
git fetch [remote]
显示所有远程仓库
git remote -v
显示某个远程仓库的信息
git remote show [remote]
增加一个新的远程仓库,并命名
git remote add [name] [url]
### 删除远程仓库
```javascript
git remote remove [name]
查看远程仓库地址
git remote get-url [name]
取回远程仓库的变化,并与本地分支合并
git pull [remote] [branch]
上传本地指定分支到远程仓库
git push [remote] [branch]
强行推送当前分支到远程仓库,即使有冲突
git push [remote] --force
推送所有分支到远程仓库
git push [remote] --all
撤销
sh
重置暂存区的指定文件,与上一次 commit 保持一致,但工作区不变
git reset [文件路径]
重置暂存区与工作区,与上一次 commit 保持一致
git reset --hard
重置当前分支的指针为指定 commit,同时重置暂存区,但工作区不变
git reset [commit id]
重置当前分支的 HEAD 为指定 commit,同时重置暂存区和工作区,与指定 commit 一致
git reset --hard [commit id]
重置当前 HEAD 为指定 commit,但保持暂存区和工作区不变
git reset --keep [commit id]
新建一个 commit,用来撤销指定 commit 后者的所有变化都将被前者抵消,并且应用到当前分支
git revert [commit id]
暂存操作
只暂存被追踪的文件
git stash
暂存所有文件并添加说明
git stash [save '说明信息'] [-u]
查看 stash 列表
git stash list
取出最近一次的 stash
git stash apply
取出 stash 列表里对应数字的暂存
git stash apply 数字
取出并删除最近一次的 stash
git stash pop
清空所有 stash
git stash clear
日志
sh
查看提交过的完整日志
git log
查看精简日志(精简版本号和提交信息)
git log --oneline
查看精简日志(完整版本号和提交信息)
git log --pretty=oneline
查看所有分支的所有操作记录(包括被删除的 commit 记录和 reset 操作)
git reflog