Git用法详解

一.Git

1.使用Git之前要配置用户名和Email

git config --global user.name "Hou Mingjie"
git config --global user.email 846151127@qq.com
用git config --global --list查看配置好的信息

2.基本概念

  • 工作目录:存放修改文件的目录。

  • 暂存区:用于暂存一次提交中的所有修改。

  • 代码库:保存代码的目录。

  • 提交:将修改保存到代码库。

  • 检出:将文件内容从代码库恢复到工作目录。

image-20231013101928167

3.提交流程(上传到本地代码库)

(1).创建工作目录
1.使用操作系统命令创建空目录
2.进入空目录,执行以下命令初始化工作目录(不初始化不叫工作目录),创建本地代码库
git init

image-20231013102542798

本地代码库是工作目录中的一个隐藏目录.git

(2)在工作目录中增加文件
(3).查看工作目录状态
>git status
On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)

注:未跟踪的文件指在工作目录中但未添加到暂存区的文件

(4).将未跟踪的文件添加到暂存区
>git add hello.c
(5).提交修改
>git commit

git会打开文件编辑器,让用户编写提交信息。如果不写提交信息,默认不给提交。

>git status
On branch master
nothing to commit, working tree clean

:如果工作目录里的内容(代码)与缓存区中的最新版本一致,则不用提交称clean.

5.1修改工作目录中已跟踪的文件,Git会检测到文件被修改
>git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   hello.c

5.2先将修改添加到暂存区
>git add hello.c
>git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   hello.c
5.3提交
>git commit
[master d4d1988] 第二次提交 

4.查看提交信息

1.查看提交历史
>git log

image-20231013110759624

  • 每次提交会产生一个版本,版本的唯一标识是提交id,完整的提交id是40个字符的随机字符串,简化的提交id是完整的提交id的前7个字符。

  • Git命令中既可以使用完整的提交id,也可以使用简化的提交id。

2.查看修改的内容
1.比较工作目录中的文件和暂存的内容之间的差异
>git diff
2.比较暂存区中的内容和代码库中最新版本之间的差异
>git diff --cached
3.比较代码库中指定版本和最新版本之间的差异
>git diff 提交id
等价于>git diff 提交id HEAD

HEAD指向下一次提交的父节点,一般指向最新版本。

4.比较代码库中不同版本之间差异
>git diff 版本1提交id 版本2提交id
5.给版本打标签

image-20231013112613565

  • 可以在Git命令中使用HEAD指针或者标签代替提交id

  • HEAD指针后加一个表示HEAD指向的版本的上一个版本,两个表示上两个版本,多个可以写为数字。代码提交前需要编译和测试通过,不能提交未完成的代码。

5.检出文件(把提交的内容下载下来)

>git checkout 提交id/标签/HEAD ./文件名

:文件名如果是**.**,则是检出所有文件

1.撤销上一次提交(本质是把HEAD指针指向上一个版本)
>git reset HEAD~
2.在新版本中删除文件
1.在工作目录中删除文件
>git rm 文件名
2.给文件重命名
>git mv 旧文件名(带.c) 新文件名(带.c)
>git commit -a

6.分支

分支可以看作是代码库的副本,当前分支的内容会自动检出到工作目录中

创建分支
>git branch 分支名
查看分支
>git branch
切换分支
>git switch 分支名
合并分支(把当前分支与分支合并到当前)

如果各分支修改了同一函数的不同行时才能合并,都修改了同一行需要人工手动合并。

git merge 分支名

远程代码库

新建远程代码库

image-20231013172628527

新建仓库

image-20231013172747766

远程代码库创建完成后,使用git remote命令和本地代码库关联

>git remote add gitee.com https://gitee.com/hhhmj/23051-test-code-repo

:gitee.com 是远程代码库的名称,一个本地代码库可以关联多个远程代码库(gitee和github),作用是备份。

将本地代码库中的分支推送到远程代码库,并将远程代码库作为上游分支

>git push --set-upstream gitee.com master

:第一次推送时需要输入托管网站的用户名和密码,后续再推送不需要。

第一次推送时需要指定远程分支名称,后续推送不需要指定远程分支名,自动推送到关联的上游分支。

>git push

将远程代码库复制到本地

>git clone 要下载的连接

:只复制默认分支

最后提交拉取请求(Pull Request)

游分支*

>git push --set-upstream gitee.com master

:第一次推送时需要输入托管网站的用户名和密码,后续再推送不需要。

第一次推送时需要指定远程分支名称,后续推送不需要指定远程分支名,自动推送到关联的上游分支。

>git push

将远程代码库复制到本地

>git clone 要下载的连接

:只复制默认分支

最后提交拉取请求(Pull Request)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值