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"
- 是路径确认,直接按回车存默认路径即可
- 直接回车,无需密码登录
- 直接回车
这时候cd ~/.ssh,ls如果有3个文件,则密钥已经生成,id_rsa.pub就是公钥。也可以打开我的电脑C:\Users\specter.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
GitHub @ndmiao ·
BiliBili @南岛鹋 ·
知乎 @南岛鹋 ·
CSDN @南岛鹋 ·
博客园 @南岛鹋 ·
个人站点 @南岛鹋
打赏
支付宝 | 微信 |
---|---|