一篇文章带你掌握Git常用命令
一、Git的工作原理
1、git的工作区:在当前仓库中,新增,更改,删除文件这些动作,都发生在工作区里面。
2、git的暂存区:英文叫stage, 或index。在版本库.git目录下,有一个index文件。它实际上就是一个包含文件索引的目录树,像是一个虚拟的工作区。在这个虚拟工作区的目录树中,记录了文件名、文件的状态信息(时间戳、文件长度等),文件的内容并不存储其中,而是保存在Git对象库(.git/objects)中,文件索引建立了文件和对象库中对象实体之间的对应。如果当前仓库,有文件更新,并且使用git add 命令,那么这些更新就会出现在暂存区中。
3、版本库:当前仓库下,如果没有任何的提交,那么版本库就是对应上次提交后的内容。
工作区、暂存区、版本库之间的关系
git add 从工作区添加到暂存区
git commit -m "" 从暂存区提交到版本库
git diff 比较工作区和暂存区的区别
git diff --cached 比较的是暂存区和版本库的差别
git diff HEAD 可以查看工作区和版本库的差别
二、Git创建项目提交到远程仓库
参考文档:https://www.cnblogs.com/ejar/p/16069815.html
前提:远程仓库已经创建
-
配置仓库 用户名称、邮箱地址
#配置用户名称
git config --global user.name "helloxujingliang"
#配置用户邮箱地址
git config --global user.email "3225043@qq.com"
#查看配置是否成功
git config -l
-
创建本地git库
git init
-
工作区文件添加到暂存区
git add .
-
暂存区文件提交到版本库
git commit -m "提交备注"
-
版本库关联到远程库
git remote add origin https://github.com/zhangsan/project.git
-
拉取远程库文件到本地版本库
git pull --rebase origin main
-
提交本地版本库文件到远程库
git push -u origin main
三、Git工作区、暂存区、版本区代码比较
1.工作区和暂存区比较
git diff
2.暂存区和版本区比较
git diff --cached
3.工作区和版本去比较
git diff HEAD
四、Git创建使用分支
参考文档:GIT分支常用命令 - 你我博客
-
查看当前本地库分支
git branch
-
创建分支
# 创建本地仓库分支
git branch branchName
# 切换到本地新创建的仓库
git checkout branchName
# 新建远程仓库
git push --set-upstream origin branchName
-
切换分支
git checkout branchName
-
创建并切换分支
git checkout -b branchName
-
合并分支
git merge branchName
-
删除本地仓库分支
git branch -d branchName
#强制删除本地仓库分支
git branch -D branchName
-
查看远程仓库分支
git branch -r
-
查看本地版本库和远程仓库所有分支
git branch -a
-
删除远程分支
git push origin --delete branchName
#或者简写
git push origin -d branchName
-
推送空分支到远程仓库
git push origin :branchName
-
分支合并
# 如果将main分支合并到master分支
# 1. 切换到master分支
git checkout master
# 2. 合并到master分支
git merge main
# 3. 解决完冲突之后,提交修改
git push
拉取远程指定分支的代码三种方式(Git三种方法从远程仓库拉取指定的某一个分支-蒲公英云)
# 拉取远程默认分支的代码
git clone http://......
# 拉取远程指定分支代码到本地
git clone -b [brancName] http://.......
五、Git删除文件
常规的做法就是通过2条命令进行删除,先使用rm删除文件,再用git rm把删除的添加到暂存区,过程如下:
-
Git使用Linux命令,先删除本地文件
rm -rf filename.text
-
Git删除文件
git rm filename.text
-
Git添加到暂缓区、上传到版本库、拉取远程代码、提交本地版本库
git add .
git commit -m "删除了filename文件'
git pull --rebase origin main
git push -u origin main
六、忽略指定文件
在git项目根目录下创建 .gitignore文件,在文件中添加需要忽略的文件
#忽略node_modules目录下的所有文件
node_modules
#忽略miniprogram_npm目录下的所有文件
miniprogram_npm
七、提交空目录
git只关注文件变化,所有空目录是不会被提交的
#在每个空目录中创建gitkeep文件
find -d -empty -exec touch {}/.gitkeep \
#然后提交
git add .
git commit -m "gitkeep commit"
git pull --rebase origin master
git push -u origin master
八、版本追溯
git reset --hard commitVersionCode
九、免密推送
十、常用命令
git status 查看当前状态
git log 查看提交日志
git merge dev 合并dev分支至当前分支
git add . 添加当前目录全部文件至暂存区
git commit -m '测试' 提交,提交信息为测试
git push origin master 推送至远端分支(master为需要推送分支,按实际需要选择)
git pull origin master 合并远端分支至本地 (git pull 等于 git fetch + git merge)
git pull --rebase origin master rebase方式合并远端分支至本地
git branch 查看当前分支
git branch dev 创建dev分支 (dev可选)
git branch -d dev 删除dev分支
git branch -r 查看远程分支
git branch -a 查看所有分支 (包括远程分支)
git checkout master 切换至master分支
git checkout -b dev 创建dev分支并切换至dev分支
git checkout -b dev origin/dev 创建远程分支到本地
git restore file 丢弃工作区修改(file为具体文件名称)
git restore * 丢弃所有工作区修改
git restore --staged file 回退暂存区文件 不会更改文件内容
git rebase --continue rebase后继续操作
git rebase --abort 退出rebase 操作
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!