Git的基本使用

Git 是分布式版本控制系统,SVN是中心式的版本控制系统,GIt直接在本机做版本控制和管理,而svn需要服务端的支持。

详情教程可以参考:
https://www.runoob.com/git/git-tutorial.htm

一、git基本操作命令

初始化文件夹为一个版本仓库:

git init  

我们使用 git clone 从现有 Git 仓库中拷贝项目(类似 svn checkout):

git clone <repo>

如果我们需要克隆到指定的目录,可以使用以下命令格式:

git clone <repo> <directory>

git add 命令可将该文件添加到缓存,如我们添加以下两个文件:

git add

git status 以查看在你上次提交之后是否有修改,查看文件修改的情况:

git status

执行 git diff 来查看执行 git status 的结果的详细信息:

git diff

使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中:

git commit

git reset HEAD 命令用于取消已缓存的内容:

git reset HEAD <file>

只是简单地从工作目录中手工删除文件:

git rm <file>

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f:

git rm -f <file>

如果把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可:

git rm --cached <file>

git mv 命令用于移动或重命名一个文件、目录、软连接:

git mv

二、Git 分支管理
创建分支,相当于创建了一个平行空间,把主线的文件复制了一份,然后在分支的空间进行增删查改操作,这不不会影响主线空间的文件,开发好之后再将分支合并到主线上,完成了代码的合并。使用分支可以不影响主线的开发进度,可以专注新模块的开发。

非常重要:Git切换分支后,工作区的文件会自动切换成对应分支的文件,就算是上万个文件,切换速度也只需要1秒,这是Git最为核心的优势。
在这里插入图片描述
切换到不同的分支,工作区文件自动发生了改变。

分支相关操作命令

创建分支命令:

git branch (branchname)

切换分支命令:

git checkout (branchname)

合并分支命令:

git merge  (branchname)

列出分支基本命令:

git branch

删除分支命令:

git branch -d (branchname)

合并冲突:
合并并不仅仅是简单的文件添加、移除的操作,Git 也会合并修改,Git会将冲突的内容添加到文件中,可以通过 git status 查看有那些文件存在冲突,比如我们打开冲突的文件,会发现冲突的内容,已经将冲突的内容合并了:

<?php
<<<<<<< HEAD
echo 1;
=======
echo 'runoob';
>>>>>>> change_site
?>

这时需要我们去手动修改,修改好后,我们可以用 git add 要告诉 Git 文件冲突已经解决,最后commit即可。

三、其他常用命令
#配置个人信息

git config --global user.name "username"
git config --global user.email "xxxxxx@qq.com"

#第一次添加远程仓库

git remote add origin https://github.com/xxxx/xxxx.git 

#第一次推送代码到远程仓库

git push -u origin master   

后续可以字节使用:git push 即可

从远程仓库下载新分支与数据:

git fetch

合并分支:

git merge

从远程仓库下载代码

git pull   

git pull = git fetch 和 git merge

好习惯:
提交代码和写代码之前,应该先更新代码,减少冲突

四、git 文件三种状态

Untracked files 未被追踪、监测,没有纳入版本管理

Changes not staged for commit 这个状态表示文件已经被修改,但是没有放入暂存区域,还没有生成快照

Changes to be committed 已经在暂存区生成了快照,等待被提交

五、.gitignore 设置代码提交规则
有的文件不需要纳入版本管理,因此需要设置忽略规则,可再.gitignoreg
.gitignore文件对其所在的目录及所在目录的全部子目录均有效。通过将.gitignore文件添加到仓库,其他开发者更新该文件到本地仓库,以共享同一套忽略规则.

# 以'#'开始的行,被视为注释.                                                                                                                          

# 忽略掉所有文件名是 foo.txt的文件.

foo.txt

# 忽略所有生成的 html文件,

*.html

# foo.html是手工维护的,所以例外.

!foo.html

# 忽略所有.o和 .a文件.

*.[oa]
配置语法:
以斜杠“/”开头表示目录;
以星号“*”通配多个字符;
以问号“?”通配单个字符
以方括号“[]”包含单个字符的匹配列表;
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

常用的规则:
1)/mtk/ 过滤整个文件夹
2)*.zip 过滤所有.zip文件
3)/mtk/do.c 过滤某个具体文件

被过滤掉的文件就不会出现在git仓库中(gitlab或github)了,当然本地库中还有,只是push的时候不会上传。
需要注意的是,gitignore还可以指定要将哪些文件添加到版本管理中:
1)!*.zip
2)!/mtk/one.txt

唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。
为什么要有两种规则呢?想象一个场景:假如我们只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理,那么我们就需要使用:
1)/mtk/
2)!/mtk/one.txt
假设我们只有过滤规则,而没有添加规则,那么我们就需要把/mtk/目录下除了one.txt以外的所有文件都写出来!

最后需要强调的一点是,如果你不慎在创建.gitignore文件之前就push了项目,那么即使你在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对所有文件进行版本管理。
简单来说,出现这种问题的原因就是Git已经开始管理这些文件了,所以你无法再通过过滤规则过滤它们。因此一定要养成在项目开始就创建.gitignore文件的习惯,否则一旦push,处理起来会非常麻烦。

如果在开发过程中,发现有些文件需要加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore文件时无效的。那么解决方法就是把本地缓存删除(改变成未track状态),然后再提交:

git rm -r --cached .
git add .
git commit -m "update .gitignore"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值