Git常用命令
基础命令
Git 分布式代码管理工具,git只追踪变化的文件节点
教程地址:https://git-scm.com/book/zh/v2
1.初始化仓库,创建版本库
git init
会生成一个.git的目录【此目录是当前仓库配置目录】
2.添加用户和邮箱
全局设置:
git config --global user.name “name” #用户名
git config --global user.email “2398@qq.com” #邮箱
当前项目设置:
git config user.name “name” #用户名
git config user.email “2398@qq.com” #邮箱
该配置都在.git目录下的config文件
3.查看当前仓库状态
git status
仓库中发生变化的文件都会显示
4.设置仓库需要忽略的文件,不需要提交的文件
创建.gitignore的文件 touch .gitignore
demo文件添加忽略的文件:
5.添加文件到暂存区
git add 文件 #添加对应的文件
git add . #一次提交所有文件
demo: git add read.txt
demo2: git add .
6.文件提交到版本库
git commit -m “说明” 提交暂存区当前文件到版本库
7.修改最近一次提交说明,或当前暂存区还有其他修改想提交到最近一次提交版本库中
git commit --amend
8.工作区的修改暂时存起来
工作区修改文件,但是不想提交到暂存区,不想提交到版本库
git stash 保存当前节点的修改(操作的文件必须是有追踪过的,或提交到暂存区)
Test.php文件没有被追中过的,执行节点保存就会出错
Test.php有提交到暂存区,有追中了,执行节点保存
Demo3:
8.2查看暂存文件的版本
git stash list
8.3切换对应的节点版本【不删除版本】
git stash apply 恢复最近一次版本
git stash apply ver(版本号) 切换到指定的版本
Demo:恢复最近版本
Demo2:恢复置顶版本
8.4删除版本
git stash drop ver(版本号) 删除对应的版本
Demo:
8.5切换到对应的版本,并删除对应的版本
git stash pop ver(版本) 切换到对应的版本
Demo:
Demo2:
9.修改文件名称
git mv 文件名称 新文件名称
Demo:
10.删除文件
git rm 文件 (该删除是把工作和版本库的文件都删除)
Demo:
10.2删除版本库的文件
git rm --cached 文件 (删除版本库中的文件,不删除工作区的文件)
Demo:
11.修改了文件,想把文件从暂存区回退到工作区
文件第一次提交到暂存区,把暂存区的该文件删除
git rm --cached文件名
Demo:
11.2.把文件从暂存区回退到工作区
git reset HEAD文件
Demo:
12.撤销文件当前在工作区的修改
git checkout – 文件名
Demo:
13.对比工作区文件和版本库的文件修改地方
git diff 文件 (是工作区(work dict)和暂存区(stage)的比较)
git diff --cached (是暂存区(stage)和分支(master)的比较)
git diff HEAD – 文件 (基于文件有修改没有提交)
Demo:
Demo2:
Demo3:
14.查看分支日志
git log 查看分支的日志
git log --online | git log --pretty=oneline查看分支日志(单行查看)
git log -p | git log --oneline -p查看每个版本对应的修改
git log -p -2|-4 只查看最近几个版本的修改
git log --name-status |git log --oneline --name-status查看每个版本的文件变化状态
git log --name-only 查看每个版本提交的文件
15.查看分支所有日志
git reflog
16.版本切换
git reset --hard HEAD^ 切换到最近的1个版本【回退几个版本取决 ^ 个数】
git reset --hard 版本号 切换到指定版本
Demo:回退最近两个版本
Demo2:切换到置顶版本
17.查看分支
git branch
18.创建分支
git branch 分支名称
Demo:
19.切换分支
git checkout 分支名称
git checkout -b 分支名称 (创建分支并切换)
Demo:
Demo:2
20.合并分支
git merge 分支
(注意:先切换到要合并的分支,再执行合并的分支)
Demo:
21.查看未合到当前分支的分支
git branch --no-merged
Demo
22.查看合并到当前分支的分支
git merge --merged
Demo:
23.删除合并过的分支
git branch -d 分支
Demo:
24.删除未合并的分支
git branch -D 分支
Demo:
25.操作别名alias
git alias.别名 操作 (也可以在.git/config文件中直接修改)
Demo:
Demo2:
别名后的操作demo:
打标签
1.列出标签
git tag
Demo:
2.对版本执行打标签
git tag -a vxx(标签号) -m “说明”
Demo:
3.模糊式匹配查看标签
git tag -l ‘标签号*’
Demo:
4.查看标签信息与对应的提交信息
git show ‘标签号’
Demo:
5.后期打标签
git tag -a vxx(标签号) 版本号 -m “说明”
Demo:
6.共享标签
默认情况下,git push 命令并不会传送标签到远程仓库服务器上。 在创建完标签后你必须显式地推送标签到共享服务器上。 这个过程就像共享远程分支一样 - 你可以运行
git push origin [tagname]
git push origin [tagname]
Demo:
【现在,当其他人从仓库中克隆或拉取,他们也能得到你的那些标签。】
7.想要一次性推送很多标签
一次性推送很多标签,也可以使用带有 --tags 选项的 git push 命令。 这将会把所有不在远程仓库服务器上的标签全部传送到那里
git push origin --tags
Demo:
8.删除掉你本地仓库上的标签
git tag -d [tagname]
Demo:
上述命令并不会从任何远程仓库中移除这个标签,你必须使用
git push :refs/tags/ 来更新你的远程仓库:
git push :refs/tags/
Demo:
9.检出标签
如果你想查看某个标签所指向的文件版本,可以使用 git checkout 命令,虽然说这会使你的仓库处于“分离头指针(detacthed HEAD)”状态——这个状态有些不好的副作用:
git checkout [tagname]
Demo:
区别:
远程分支操作:
1.克隆远程仓库
git clone git的ssh地址 新目录名称
Demo:
2.添加远程分支地址别名
git remote add 名称 git的ssh地址
Demo:
3.查看远程分支地址,查看远程地址别名
git remote -v
Demo:
4.移除远程分支地址别名
git remote remove 别名
Demo:
5.推送修改到远程仓库
git push origin 远程分支名称
Demo:
6.拉取远程分支修改
git pull origin 远程分支名称
Demo:
7.查看远程分支
git remote show origin
Demo:
8.拉取远程新分支到本地
git checkout -b 本地分支 origin/远程分支 (拉取远程分支到本地分支,并切换到本地分支)
git fetch origin 远程分支名:本地分支名称 (拉取远程分支到本地,不会自动切换到本地分支)
Demo:
Demo2:
9.推送本地分支到远程创建新的远程分支
git push origin 远程分支名称
Demo: