学习使用Git

安装Git

首先请前往Git官网去下载最新的安装包
Mac:https://git-scm.com/download/mac

Win: https://git-scm.com/download/win

安装完成后,需要设定用户名和邮箱来区分不同的用户:

git config --global user.name "自己的用户名"
git config --global user.email "自己的邮箱"

//如果本机设置过忘记用户名和邮箱可以使用
git config user.name
git config user.email
git config user.password

Gitee

新建仓库

创建本地仓库

项目名最好和本地仓库名一致

mkdir dsjqqhdflzy

创建一个空的Git仓库或重新初始化一个现有仓库

git init

输⼊后,会⾃动⽣成⼀个 .git ⽬录,注意这个⽬录是⼀个隐藏⽬录,⽽当前⽬录就是我们的⼯作⽬录。创建成功后,我们可以查看⼀下当前的⼀个状态,输⼊:

git status

如果已经成功配置为Git本地仓库,那么输⼊后可以看到:

On branch master
No commits yet
// 这表示我们还没有向仓库中提交任何内容,也就是⼀个空的状态。

然后,我们在本地库上使用命令git remote add把它和Gitee的远程库关联:

git remote add origin https://gitee.com/hanxuxian/dsjqqhdflzy.git

添加和提交

我们创建一个README.md文件

touch README.md

将README.md添加到暂存区

git add README.md

查看当前状态

git status

我们的README.md现在已经被添加到暂存区了

Changes to be committed:

	(use "git rm --cached <file>..." to unstage)

	new file: README.md

我们将其提交到Git本地仓库中

git commit -m "fitst commit"

Terminal(终端)会显示以下信息表示提交到本地仓库成功

[master (root-commit) ea3d861] first commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README.md

接着我们可以查看我们提交记录:

git log
git log --graph

我们还可以查看最近⼀次变更的详细内容:

git show //也可以加上commit ID查看指定的提交记录 (commit ID)为提交成功的 ea3d861

然后将本地的"master"分支推送到名为"origin"的远程仓库。

git push -u origin "master"

回滚

当我们想要回退到过去的版本时,就可以执⾏回滚操作,执⾏后,可以将⼯作空间的内容恢复到指定提交的状态:

git reset --hard commitID

执⾏后,会直接重置为那个时候的状态。再次查看提交⽇志,我们发现之后的⽇志全部消失了。

那么要是现在我⼜想回去呢?我们可以通过查看所有分⽀的所有操作记录:

git reflog

这样就能找到之前的commitID,再次重置即可。

分支

分⽀就像我们树上的⼀个树枝⼀样,它们可能⼀开始的时候是同⼀根树枝,但是⻓着⻓着就开始分道扬镳了,这就是分⽀。我们的代码也是这样,可能⼀开始写基础功能的时候使⽤的是单个分⽀,但是某⼀天我们希望基于这些基础的功能,把我们的项⽬做成两个不同⽅向的项⽬,⽐如⼀个⽅向做Web⽹站,另⼀个⽅向做游戏服务端。因此,我们可以在⼀个主⼲上分出N个分⽀,分别对多个分⽀的代码进⾏维护。

创建分支

我们可以通过以下命令来查看当前仓库中存在的分⽀:

git branch

我们发现,默认情况下是有⼀个master分⽀的,并且我们使⽤的也是master分⽀,⼀般情况下master分⽀都是正式版本的更新,⽽其他分⽀⼀般是开发中才频繁更新的。我们接着来基于当前分⽀创建⼀个新的分⽀:

git branch test
# 对应的删除分⽀是
git branch -d yyds

现在我们修改⼀下⽂件,提交,再查看⼀下提交⽇志:

git commit -a -m 'branch master commit'

通过添加-a来⾃动将未放⼊暂存区的已修改⽂件放⼊暂存区并执⾏提交操作。查看⽇志,我们发现现在我们的提交只⽣效于master分⽀,⽽新创建的分⽀并没有发⽣修改。

我们将分⽀切换到另⼀个分⽀:

git checkout test

我们会发现,⽂件变成了此分⽀创建的时的状态,也就是说,在不同分⽀下我们的⽂件内容是相互隔离的。我们现在再来提交⼀次变更,会发现它只⽣效在yyds分⽀上。我们可以看看当前的分⽀状态:

git log --all --graph

合并分支

我们也可以将两个分⽀更新的内容最终合并到同⼀个分⽀上,我们先切换回主分⽀:

git checkout master	

接着使⽤分⽀合并命令:

git merge test

会得到如下提示:

Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.

在合并过程中产⽣了冲突,因为两个分⽀都对README.md⽂件进⾏了修改,那么现在要合并在⼀起,到底保留谁的README⽂件呢?

我们可以查看⼀下是哪⾥发⽣了冲突:

git diff

因此,现在我们将master分⽀的版本回退到修改hello.txt之前或是直接修改为最新版本的内容,这样就不会有冲突了,接着再执⾏⼀次合并操作,现在两个分⽀成功合并为同⼀个分⽀。

变基分⽀

除了直接合并分⽀以外,我们还可以进⾏变基操作,它跟合并不同,合并是分⽀回到主⼲的过程,⽽变基是直接修改分⽀开始的位置,⽐如我们希望将yyds变基到master上,那么yyds会将分⽀起点移动到master最后⼀次提交位置:

git rebase master

变基后,yyds分⽀相当于同步了此前master分⽀的全部提交。

优选

我们还可以选择其将他分⽀上的提交作⽤于当前分⽀上,这种操作称为cherrypick:

git cherry-pick <commit id>:单独合并⼀个提交

这⾥我们在master分⽀上创建⼀个新的⽂件,提交此次更新,接着通过cherry-pick的⽅式将此次更新作⽤于test分⽀上。

克隆项目

如果我们已经存在⼀个远程仓库的情况下,我们需要在远程仓库的代码上继续编写代码,这个时候怎么办呢?我们可以使⽤克隆操作来将远端仓库的内容全部复制到本地:

git clone 远程仓库地址

这样本地就能够直接与远程保持同步。

posted @   韩续贤  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示