github这个代码仓库对于每个程序员都耳熟能详了,此外还有码云、gitlab等等。而要熟练运用这些代码仓库,掌握好git这个核心的分布式版本控制系统是最为关键的一步。本文将就git的原理以及实践操作来演示git的基本操作,帮助新手快速上手以及掌握git。

什么是Git

来源

  • Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
  • Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
  • Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

Git 工作区、暂存区和版本库

工作区:就是你在电脑里能看到的目录。
暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

Git的基本操作

Github代码仓库

配置

首先是设置用户名和邮箱作为一个标识,用户和邮箱为github注册的账号和邮箱

$ git config --global user.name "ndmiao"
$ git config --global user.email "ndmiao@126.com"

其次是生成 ssh key

$ ssh-keygen -t rsa -C "ndmiao@126.com"
  1. 是路径确认,直接按回车存默认路径即可
  2. 直接回车,无需密码登录
  3. 直接回车

这时候cd ~/.ssh,ls如果有3个文件,则密钥已经生成,id_rsa.pub就是公钥。也可以打开我的电脑C:Usersspecter.ssh 里面找到。然后点击github右上角的头像,点击setting,按照下图的顺序将id_rsa.pub的内容黏贴进去即可。

这时候ssh测试一下应该就能连通了

$ ssh -T git@github.com
Hi ndmiao! You've successfully authenticated, but GitHub does not provide shell access.

github创建仓库

创建一个新的仓库,填入仓库名和描述

第一次创建仓库的时候,会有简单的推送提示

创建本地仓库并推送

第一个是git init命令,作用是在本地来初始化一个Git仓库,会生成一个.git目录。

$ git init
Initialized empty Git repository in D:/application/downloads/test/.git/

然后在工作区随便创建几个文件

# 将全部文件添加到缓存区, . 替换成具体文件可以添加具体文件
git add .

# 添加注释,并将文件提交到版本库
git commit -m "first commit"

# 将主分支变成main,git branch可以查看本地的分支。-d删除分支,后面加分支名,-a为本地和远程仓库,-r为本地仓库,-vv -a查询本地仓库+远程仓库+跟踪关系
git branch -M main

# 将远程仓库唯一的URL<url> 映射成为 在本地仓库中对远程仓库起的别名<shortname>即origin
git remote add origin https://github.com/ndmiao/test.git

# 将本地仓库推送到远程仓库,-u代表默认仓库。因为GitHub是国外服务器,所以可能推失败,多试几次。
git push -u origin main

# push失败可以试试检查环境变量
env|grep -i proxy

将github上的内容克隆到本地

# 如果本地没有项目,可以采用 git clone,会把整个项目下载下来
git clone https://github.com/ndmiao/test.git

# 如果本地存在该仓库,则可以用 git pull 下载并合并代码。git pull <远程主机名> <远程分支名>:<本地分支名>例如git pull origin master:brantest。如果没有参数则默认。
git pull

创建分支,推送并合并

# 首先需要在本地创建分支
git branch ndmiao

# 切换到该分支
git checkout ndmiao

# 可以用下方的命令直接实现上方两个命令
git checkout -b ndmiao

# 这时候git branch查看分支,即可发现多了一个ndmiao的分支
git branch

# 要想合并分支有两种选择,一个是本地先合并,一个上传后合并

# 本地合并,然后再add、commit、push即可
git merge ndmiao

# 上传到远程分支,然后合并
git add .
git commit -m "add ***"
git push origin ndmiao

这时候会发现github上多了一个ndmiao的分支

点击Compare & pull request,然后点击create pull request即可。

点击Merge pull request,然后点击Confirm merge

如果需要删除分支,可以点击Delete branch

码云代码仓库

第一步就是将公钥添加到码云中,路径为设置->SSH公钥->添加公钥

# 因为码云的主节点还是master,所以要创建一个master节点
git checkout -b master

git add .
git commit -m "my first commit"

# 将远程gitee仓库唯一的URL<url> 映射成为 在本地仓库中对远程仓库起的别名<shortname>即gitee
git remote add gitee git@gitee.com:ndmiao/test.git

# 然后push到gitee的master就可以了
git push gitee master

GitLab代码仓库

第一步就是将公钥添加到GitLab中,路径为preferences->SSH Keys->Add key

# 因为GitLab的主节点还是master,所以要创建一个master节点,码云那一步做了就不用创建
git checkout -b master

git add .
git commit -m "my first commit"

# 将远程gitee仓库唯一的URL<url> 映射成为 在本地仓库中对远程仓库起的别名<shortname>即gitlab
git remote add gitlab ssh://git@69.231.150.96:222/root/test.git

# 然后push到gitlab的master就可以了
git push gitlab master

相信经过以上的实践,读者已经能够掌握最基本的git的push、pull、add、commit等命令了,足够日常的使用了。如果想要了解更加多的git操作,比如版本回退、文件比较等等,可以参考该教程https://www.runoob.com/git/git-tutorial.html

Last modification:July 30th, 2021 at 02:51 pm
如果觉得我的文章对你有用,请随意赞赏