Git之命令的学习

本文介绍了Git的基本操作,包括创建并连接本地与远程仓库、上传项目到指定分支、理解git工作区域及其四个状态,以及git pull、git commit、git restore等其他有用命令的使用。通过实例解析了git在实际工作中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

今天帮好兄弟xmq上传了一下他制作的网页deepin到github上

发现关于git命令还有很多未知的事情。说干就干,我们来处理一下这些工作!

创建并连接本地仓库与远程仓库

  • 我选择的本地仓库路径如下

/Users/nathanq/Sites/XMQ/HTML-DEEPIN
  • 首先初始化当前仓库

$ git init
提示:使用 'master' 作为初始分支的名称。这个默认分支名称可能会更改。要在新仓库中
提示:配置使用初始分支名,并消除这条警告,请执行:
提示:
提示:	git config --global init.defaultBranch <名称>
提示:
提示:除了 'master' 之外,通常选定的名字有 'main'、'trunk' 和 'development'。
提示:可以通过以下命令重命名刚创建的分支:
提示:
提示:	git branch -m <name>

这里有个有意思的提示,告诉我可以通过

git branch -m <name>

重命名master分支

  • 状态检查命令,来检查当前的文件夹里的文件的提交状态与跟踪状态

$ git status
位于分支 master

尚无提交

未跟踪的文件:
  (使用 "git add <文件>..." 以包含要提交的内容)
	css/
	image/
	index.html

提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)

在远程仓库中的目录为 origin/master

  • 本地仓库的文件建立跟踪

$ git add -A
  • 进行确认提交

$ git commit -m "first commit"
[master(根提交) 9e2a32f] first commit
 56 files changed, 1378 insertions(+)
  • 再次查看当前仓库状态

$ git status
git status
位于分支 master
无文件要提交,干净的工作区
  • 非常重要的一步 与远程仓库建立连接

$ git remote add origin git@github.com:Nathanstefanqian/git-test.git
  • 将提交的内容推上远程仓库

$ git push origin master
枚举对象中: 59, 完成.
对象计数中: 100% (59/59), 完成.
使用 8 个线程进行压缩
压缩对象中: 100% (59/59), 完成.
写入对象中: 100% (59/59), 1.17 MiB | 4.14 MiB/s, 完成.
总共 59(差异 3),复用 0(差异 0),包复用 0
remote: Resolving deltas: 100% (3/3), done.
To github.com:Nathanstefanqian/git-test.git
 * [new branch]      master -> master

就此连接仓库以及初步上传的工作就已经结束啦

上传项目到指定分支

目前的解决办法为:

首先 git clone 目标上传分支到本地

然后将文件给放到拉到本地的文件夹里

接着正常如上操作

git push origin <分支名>

在练习其他操作之前

我们先对git的工作区域进行一个研究!

git工作区域的研究

git的四个工作区域

分别为:

工作区域(Working Directory)、暂存区(Stage\Index)、本地仓库(Repository)、远程仓库(Remote Directory)

工作区:存放项目代码的地方

暂存区:用来临时存放改动的地方

本地仓库(版本库):就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本。

远程仓库:托管代码的服务器

git的工作流程

git的工作流程一般分为以下几步:

在工作目录中添加、修改、删除文件(modified);

将需要进行版本管理的文件放入暂存区(staged);

将暂存区域的文件提交git仓库(committed);

将本地git仓库修改推送到远程仓库;

因此,git管理的文件有三种状态:已修改(modified)、已暂存(staged)、已提交(committed)。

文件的四种状态

  1. Untracked:未跟踪,此文件在文件夹中但并没有加入到git库,不参与版本控制,通过git add 状态变为Staged。

  1. Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致,这种类型的文件有两种去处,1. 如果被修改,而变成Modefied,2. 如果使用git rm移除版本库,则成为Untracked文件。

  1. Modified:文件已修改,仅仅时修改,并没有进行其他操作,这个文件也有两个去处,1. 通过git add可进入暂存Staged状态,2. 使用给git checkout 则丢弃修改内容,返回Unmodifiy状态,这个git checkout 即从库中去除文件,覆盖当前修改。

  1. Staged:暂存状态,执行git commit 则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为Unmodify状态,执行git reset HEAD filename取消暂存,文件状态为Modified。

其他有意思的操作

git pull与git clone

都是从git上拿到文件 这两个操作根据使用场景的不同 使用也会有限制

有权限 本地无代码

git clone git pull

有权限 本地有代码

git pull(用于更新本地代码)

无权限 本地无代码

git clone(不需要远程连接此仓库)

有权限 本地无代码

删除.git/ 重新初始化并连接仓库

$ git pull git@github.com:fengcms/fengcms.git
kex_exchange_identification: Connection closed by remote host
Connection closed by 20.27.177.113 port 22
致命错误:无法读取远程仓库。
$ git pull git@github.com:Nathanstefanqian/git-test.git                                               1 ↵
git pull git@github.com:Nathanstefanqian/git-test.git
来自 github.com:Nathanstefanqian/git-test
 * branch            HEAD       -> FETCH_HEAD
已经是最新的。g

git commit

git commit -a

-a的意思是 当前你已经通过 git add跟踪的文件如果发生了修改或者删除,那么它会自动提交更新,不需要你更新后手动git add

但是注意新添加的文件 依然需要使用 git add来跟踪这个文件

git restore --staged

git restore --staged 命令,把文件从暂存区撤回到工作区,保留文件最后一次修改的内容;

git restore 命令,会撤销文件的修改,使文件恢复到暂存区或本地代码库(取决于文件在修改前的状态);

git branch与git checkout

git branch 查看当前仓库的分支

git branch 创建一个新的分支

git branch -d 删除本地分支

git branch -D 强行删除本地分支(目标分支与当前分支没有合并时这样操作可以强行清除分支)

git merge 合并Branch到当前分支

git checkout -b 创建一个新分支并切换到新分支

遗留问题

未通过测试的语句:

git checkout . 放弃工作区所有修改

git checkout -- filename 放弃工作区某个文件的修改

git remote

git remote add 新增一个远程主机名并连接到一个url

git remote rm 删除远程分支

git remote -v 查看当前的远程主机

git push

git push -u origin master

将本地分支的内容推到远程主机origin的master分支上 如果没有则创建一个

加上-u代表如果当前分支有连接多个远程主机,那么默认主机为origin,以后推送到origin可以直接写成

git push

git 删除文件和文件夹

1. 仅仅删除远程分支文件,不删除本地文件

//文件删除
git rm --cached filename
git commit -m "delete remote file filename "
git push origin master(此处是当前分支的名字)
//文件夹删除
git rm -r --cached directoryname
git commit -m "delete remote directory directoryname "
git push origin master(此处是当前分支的名字)

2. 删除本地文件与远程分支文件

同上,将 --cached删去

2022年1月18日更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值