Git使用教程

Git使用教程

更好的阅读体验

从大一就开始用git了,但是一直以来都是想到哪用到哪,时间一长一些命令就容易忘,这次就系统地记录一下git命名,也方便后续查询

在这里推荐一个可视化学习Git的网站

Git学习

Git基本概念

image-20221124182414047.png

git工作区

工作区就是当前git的仓库的目录,工作区独立于各个分支

git版本库

git将所有版本通过一棵有向树的形式存储,存放所有已经提交到本地仓库的代码版本

git暂存区

git暂存区是工作区和版本库之间的缓冲区,工作区在向版本库更新时不会直接放入,而是先放入暂存区,最后将暂存区中的内容放入版本库。注意到暂存区是git的一个公共区域,无论当前所处的分支在何处,暂存区都是一样的

HEAD节点

当前版本所在的节点,每次创建时向head后加入节点并将内容放入其中

Git文件状态

首先对于任何一个文件,在Git内都只有四种状态

  • 未跟踪 (untracked)

表示没有跟踪 (add) 某个文件的变化,使用 git add 即可跟踪文件

  • 未修改 (unmodified)

表示某文件在跟踪后一直没有改动过或者改动已经被提交

  • 已修改(modified)

表示修改了某个文件- 但还没有加入 (add) 到暂存区中

  • 已暂存 (staged)

表示把已修改的文件放在下次提交 (commit) 时要保存的清单中

image.png

Git常用命令

git config设置

用于设置git全局信息

git config --global user.name xxx

设置全局用户名,信息记录在~/.gitconfig文件中

git config --global user.email xxx@xxx.com

设置全局邮箱地址,信息记录在~/.gitconfig文件中

git init 配置仓库

git init

将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中

git add 将文件存入暂存区

git add XX

将XX文件添加到暂存区

git add .

将所有已修改状态文件加入暂存区

git commit 将暂存区内容提交到分支

git commit -m "给自己看的备注信息"

commit后暂存区清空

git status 查看当前仓库状态

git status

用于查看当前仓库跟对应HEAD版本是否存在改动

git diff 查看文件相对于暂存区的改动

git diff

当工作区有改动,暂存区为空,diff的对比是“工作区与最后一次commit提交的仓库的共同文件”;当工作区有改动,暂存区不为空,diff对比的是“工作区与暂存区的共同文件”

git rm --cached xx 删除仓库git文件索引

git rm --cached XX

删除索引后,文件不再受git管理

未跟踪状态

git rm xx 同时从工作区和索引删除文件

git rm xx

git restore 撤销工作区更改不改变暂存区内容

git restore xx

该命令将已修改文件变为未修改文件(包括删除),若暂存区有已修改文件,则恢复至暂存区文件,否则为原始版本

git restore --stage 撤出暂存区内容

git restore --stage xx

将暂存区的文件从暂存区撤出,但不会更改文件的内容

将文件从已暂存恢复到已修改

git log 查看分支

git log

查看当前分支的所有版本

从空走到当前节点的路径

git reset --hard 回滚版本

git reset --hard HEAD^ 或 git reset --hard HEAD~

将代码库回滚到上一个版本

git reset --hard HEAD^^

往上回滚两次,以此类推

git reset --hard HEAD~100

往上回滚100个版本

git reset --hard 版本号

git reflog 查看HEAD指针移动历史

git reflog

查看HEAD指针的移动历史(包括被回滚的版本)

git checkout

git checkout

功能同git restore一致

git remote add origin git@xxx: 关联本地仓库

git clone git@github.com:xxx/XXX.git

建立本地仓库与云端仓库的映射

git clone 下载远程仓库

git clone git@github.com:xxx/XXX.git

将文件下载到本地

git branch 查看所有分支和当前分支

git branch

git checkout -b 创建并切换分支

git checkout -b branch_name

当前的分支内容与上一个节点内容一致

git checkout 切换到某个分支

git checkout branch_name

git merge 合并分支

git merge branch_name

将分支branch_name合并到当前分支上(本质上是修改引用)

git branch -d 删除分支

git branch -d branch_name

git branch 创建新分支

git branch branch_name

git push 推送分支

首次推送时要先建立本地仓库与远程仓库主分支的映射关系

git push -u origin master

其中origin表示服务器端,即远程端,master表示主分支名

git push

根据当前分支推送到远程对应的分支

git push --set-upstream 设置远程分支映射

git push --set-upstream origin brabch_name

–set-upstream设置远程服务器端的分支仓库与本地分支仓库的映射

git push -d 删除远程仓库分支

git push -d origin branch_name

删除远程仓库的branch_name分支

git pull 拉取分支并合并

git pull

将远程仓库的当前分支和本地仓库的当前分支合并

也可使用

git pull origin branch_name

表示将远程仓库的branch_name分支与当前分支合并

git checkout -t origin 拉取远程分支到本地

git checkout -t origin/branch_name

将远程的branch_name 分支拉取到本地

git stash

git stash 是git中的一个栈空间,可以存放工作区和暂存区尚未提交的修改,常用保存部分可能有参考价值但又需要重写的代码

git stash

将工作区和暂存区中尚未提交的修改存入栈中

git stash apply

git stash apply

将栈顶存储的修改恢复到当前分支,但不删除栈顶元素

git stash drop

git stash drop

删除栈顶存储的修改

git stash pop

git stash pop

将栈顶存储的修改恢复到当前分支,同时删除栈顶元素

git stash list

git stash list

查看栈中所有元素

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值