gitCommand
Description
常用 git 命令整理,
1 初始化本地仓库
git init
//将当前目录初始化为 git 的本地仓库
2 查看是否有文件被追踪(只能追踪到暂存区和工作目录中的文件)
git status
红色没有追踪,绿色被追踪,他只能看暂存区和工作目录里面的文件,commit 之后到未修改\添加任何文件之前,没有区别,将不会打印任何东西
3 暂存区操作
-
添加到暂存区
git add .
将所有文件提交到暂存区git add <文件名字>
将指定文件提交到暂存区
-
从暂存区移除文件
git rm --cached <文件名字>
从暂存区移除文件git restore --staged <文件名字>
从暂存区移除文件(只能移除暂存区的文件)git reset head <文件名字>
取消上一次的操作(commit 也能用 reset head 取消)
注意:git 所有的操作都是修改操作,所以也可以直接删除工作区文件 然后git add .
提交到暂存区,也能删除
4 本地仓库操作
-
提交到本地仓库
git commit -m "初始化项目"
这里写本次提交的日志,(如:git commit -m “初始化项目”) 一定要写日志,否则会报错.git commit
如果只写了 git commit 会进入编辑模式,按 i 进入编辑状态,输入日志后按 esc 退出编辑模式 在输入 :wq 保存并提交git commit -am "初始化项目"
am 是git add.
和git commit -m "初始化项目"
的缩写, 代表将文件添加到暂存区并提交, 省去写 git add .命令
-
查看提交日志
git log
查看所有日志的详细信息(id, 日期,作者,日志)git log --pretty=oneline
查看简略日志(id,日志)
-
对比文本地仓库文件和暂存区文件的不同
git diff head -- <文件名称>
查看本地库和工作区的文件的不同
部分代码如下:
— a/test.txt
+++ b/test.txt
@@ -1,2 +1,4 @@代码说明: |参数|说明| |:-:|:-:| |--|变动之前的文件| |++|变动之后的文件| |-1,2|变动之前的文件,从第一行开始,连续两行| |+1,4|变动之前的文件,从第一行开始,连续三行|
-
查看本地仓库文件
git ls-files
查看本地仓库中的文件,没有被添加到仓库中的将不会显示
5.版本回退
git reset --hard head^
退回上一个版本,head 后面的^ 有多少个代表多少个版本,如git reset --hard head^^^^
代表回退四个版本git reset --hard head~2
想要回退多少个版本就在~ 后面写多少,如git reset --hard head~200
代表回退 200 个版本git reset --hard <id>
回退到指定版本,id 是通过git log
或者git reflog
查询的,保证 id 不唯一即可,一般 8 位左右,如git reset --hard 69feb20ed1
git reflog
查看所有的日志 包括退回的日志,git log
回退之后就无法显示最新的版本
6.远程仓库操作
- 建立远程仓库连接
git remote rm origin
删除远程仓库连接(针对已经连接过仓库),git remote add origin <仓库地址>
如git remote add origin https://github.com/QIXIUQX/teset.git
git remote -v
查看连接的远程仓库
1.推送到远程仓库
- 推送
git push origin master
推送到远程仓库的 master 分支
7.分支操作
- 本地分支操作
git branch <本地分支名称>
创建一个分支 如git branch dev
git checkout -b <本地分支名称>
创建一个分支并且直接切换到该分支 如git checkout -b feature_search
将会创建分支 feature_search 并且切到 feature_search 分支git branch
查看当前所有分支,*代表当前所在分支git branch -d <本地分支名称>
删除本地分支,如git branch -d dev
git checkout <本地分支名称>
切换到某个分支,如git checkout dev
切换到 dev 分支git branch -m <本地分支名称> [本地分支名称]
修改分支名字,如git branch -m test dev
将名称为 test 的分支重命名为 devgit branch -m demo
将当前分支名字重命名为 demogit merge dev
将 dev 分支合并到 master(输入命令时在 master 分支) 分支合并只能是主干合并分支, 不能是分支合并主干
- 远程分支操作
git branch -a
查看当前所有分支(本地分支和远程分支),*代表当前所在分支git push origin <本地分支名称>
将分支推送到远程仓库 如git push origin dev
git push origin :<远程分支名称>
将删除远程分支,不会影响本地分支 如git push origin :dev
git checkout -b <本地分支名称> origin/<远程分支名称>
将远程分支拉取到本地并且创建分支 如git checkout -b dev origin/dev
git fetch
获取远程仓库最新的分支状态,(一般用于拉取远程分支到本地之前)
- 拉取远程最新内容到本地
git pull origin <远程分支名称>
拉取远程最新内容到本地 如git pull origin master
拉取远程分支最新内容到本地(ps:每次推送到远程时候优先拉取一次,有冲突直接处理,然后在 push 到远程仓库)
8.标签操作
-
本地标签操作
git tag
查询所有本地标签git tag -d <本地标签名称>
删除本地指定标签git tag <本地标签名称>
创建一个标签 如git tag v1.0
注意标签是给最后一次提交成功的记录打的git tag <本地标签名称> <id>
指定某一个版本打标签 如git tag v0.5 8acf0ab39
给 id 为 8acf0ab39 的提交记录打标签git tag <本地标签名称> -m "标签说明" <id>
指定某一个版本打标签并加说明 如git tag 初始化项目 -m "在给id3580d4180打标签" 3580d4180
给 id 为 3580d4180 的提交记录打标签并且标签的说明是:在给 id3580d4180 打标签" 3580d4180,这时候 push 到远程仓库点 tag 就可以看到
-
远程标签操作
git push origin <本地标签名称>
推送本地标签到远程仓库 如git push origin v1.0
将本地仓库 v1.0 推送到远程仓库, 此时远程仓库就能看到 taggit push origin --tag
本地所有没有推送到远程的标签将会全部推送到远程git push origin :refs/tags/<远程标签名称>
删除指定远程仓库中的标签 如git push origin :refs/tags/v1.0