Git 命令

166 阅读6分钟

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