Git&GitHub之命令行操作

本文介绍了Git与GitHub的命令行操作。Git是分布式版本控制工具,多数操作可本地完成。文中详细阐述了Git操作流程,包括本地提交、远程提交、远程拉取、版本切换和分支管理等,并给出了各操作对应的命令及使用方法,还提及冲突解决步骤。

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

                                    Git&GitHub之命令行操作

 

       Git作为分布式版本控制工具,分支操作是其最大杀器,这点与集中式版本控制工具SVN大不相同,且大部分操作可在本地完成,并不需要联网,除非用到GitHub或码云这些远程库,下面我们就来学习一下这个强大的版本控制工具吧,首先来体验一波命令行的魅力。

 

1、Git的一般结构(这里不包括分支)

 

 

2、Git操作的具体流程

 

本地提交

前提:下载并安装好git工具

首先先创建一个项目,并利用Git Bash进入命令行界面。

使用命令初始化为git项目:git init

之后会出现一个.git文件夹,说明初始化成功

设置一个系统级别的签名,顾名思义,设置一次,以后的项目就不用设置了

需要设置用户名和邮箱,文件信息保存在家目录下:~/.gitconfig

命令:git config --global user.name 用户名

           git config --global user.email 邮箱地址

新增一个文件,并从工作区添加到缓存区中

命令:git add [文件名]

查看文件的状态可以用以下命令,绿色则代表已经在缓存区了,红色则还没add添加,没显示的话,那就是在本地库中了。

命令:git status

再把文件从缓存区添加到本地库,其中-m参数所带的提交信息是必须

命令:git commit -m "提交信息" [文件名]

以上操作就是把文件提交到了本地库了

 

远程提交

先去GitHub创建一个项目

 

地址分为两种方式:

第一种:HTTPS:提交时需要输入GitHub的用户名和密码

第二种:SSH:在提交时需提前在本机生成一个密钥,然后去GitHub上面绑定,以后的提交都不需要做任何操作。密钥生成的地址在家目录下:~/.ssh/id_rsa.pub文件

SSH生成密钥的命令:ssh-keygen -t rsa -C [邮箱名]

位置:头像->setting->SSH and GPG keys->New SSH key,把密钥粘贴进去就行

回到git bash先给远程地址名创建别名,因为一直用那么长的地址提交很是不方便

命令:git remote add [别名] [远程地址名]

这时就可以正式推送给远程库了

命令:git push [远程地址别名] [本地分支名]

以上的操作就完成了项目的远程提交了

 

远程拉取

远程拉取分为两种:

第一种:pull

命令:git pull [远程地址别名] [远程分支名]

pull拉取需要本地已经创建好了仓库,然后去拉取远程的内容,相当于fetchmerge的综合操作。一般用于拉取自己已经push过的项目

 

第二种:clone

命令:git clone [远程地址名]

clone拉取不需要本地的任何操作,拉取下来的同时也会同时初始化完成。一般用于去github拉取别人的项目

下面就演示下git clone,以github上一个优秀项目为例,git pull同理

 

开始clone

 

clone完成

 

Git的版本切换

想要切换版本,必须要查看历史版本

命令:git reflog 

或git log、git log --pretty=oneline、git log --oneline

切换版本(前面第一列的值代表局部索引值,唯一表示该版本)

命令:git reset --hard [局部索引值]

参数:--hard:本地库移动HEAD指针,重置暂存区,重置工作区(三个区都切换了版本)

          --mixed:本地库移动HEAD指针,重置暂存区(两个区切换了版本,不加参数就默认mixed)

          --soft:本地库移动HEAD指针,重置暂存区(仅一个区切换了版本)

切换到第二次提交的版本,局部索引值:21e0672

 

Git的分支管理

Git的分支图

创建分支:git branch [分支名]

查看本地分支:git branch -v

查看本地和远程分支:git branch -v -a

切换分支:git checkout [分支名]

在新的分支上增加点内容,再合并(记得add并commit才算新增内容到本地库)

合并分支:git merge [有新内容分支名](前提是已经切换到被合并的分支)

冲突:若在hot_fix修改某一行数据时,master也恰好在修改同一行数据,在合并merge时就会发生冲突,这时的冲突git是无法自动帮我们解决的,需要手动解决冲突,该保留哪些数据,要人为决定

解决冲突步骤:

第一步:编辑冲突文件,删掉发生冲突后自动增加的特殊符号,并主观保留hot_fix还是master修改后的内容,保存退出。

第二步:git add [文件名]

第三步:git commit -m "提交信息"   (这时不能带文件名,否则会发生错误)

 

总结:以上就是git命令行的一些常规操作,如果需要了解IntelliJ下的git操作,可以参考我的另外一篇博文:https://blog.youkuaiyun.com/weixin_38802061/article/details/89789007

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值