git的基本使用

目录

什么是git

git本地使用

github远程代码仓库


什么是git

为解决本地单点down掉,或server端down掉问题以及同步问题,为了更好的管理和维护代码,git诞生了,它是最先进的分布式版本控制系统。Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)在 BitKeeper的基础上,开发出自己的版本系统。

git的特点:

  • 快速
  • 简单的设计
  • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
  • 完全分布式
  • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

Git 有三种状态:已提交(committed)、已修改(modified) 和 已暂存(staged)。
已修改表示修改了文件,但还没保存到数据库中。
已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
已提交表示数据已经安全地保存在本地数据库中。

这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。
工作区:我们编写的文件代码就在工作区
暂存区:工作区的代码添加后进入暂存区,临时存放
master(主分支):暂存区的代码提交后进入master,正式存放在版本库

通常版本库存放的文件都是纯文本的,非常适合存放配置文件,如ansible的playbok文件、dockerfile等等

git本地使用

yum安装git

[root@vm5 ~]# yum install -y git

创建工作目录demo

[root@vm5 ~]# mkdir demo

进入目录,git命令必须在版本库中使用,出去就不顶用了,因为信息都记录在版本库中

[root@vm5 ~]# cd demo/

初始化版本库

[root@vm5 demo]# git init

Initialized empty Git repository in /root/demo/.git/

现在demo目录就是存放版本的版本库,.git目录是git跟踪管理版本库的,不要乱动。

查看状态

[root@vm5 demo]# git status

# On branch master

#

# Initial commit

#

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

创建一个文件,并简化输出,看到??就代表在工作区新添加的,未跟踪的

[root@vm5 demo]# echo test > README.md

[root@vm5 demo]# ls

README.md

[root@vm5 demo]# git status -s

?? README.md

add表示从工作区添加到暂存区,此时状态为A,表示新添加到暂存区的。

[root@vm5 demo]# git add README.md

[root@vm5 demo]# git status -s

A README.md

首次提交时需要先提交用户信息

[root@vm5 demo]# git config --global user.email "fx@westos.org"

[root@vm5 demo]# git config --global user.name "fx"

commit表示从暂存区添加到master,默认提交整个暂存区。如果查看状态什么都不显示,正常进入了master主分支。

[root@vm5 demo]# git commit -m "add README.md"

如我们改动了原文件README.md,查看状态,右边的M表示在工作区改动了文件,add后,查看状态,左边的M表示在暂存区改动了文件,commit提交后,就没有状态了,表示进入了master

[root@vm5 demo]# echo hello >> README.md

[root@vm5 demo]# git status -s

  M README.md

[root@vm5 demo]# git add README.md

[root@vm5 demo]# git status -s

M README.md

继续修改文件,两个MM表示一部分在工作区,一部分在暂存区

[root@vm5 demo]# echo world >> README.md

[root@vm5 demo]# git status -s

MM README.md

提交之后,发现留下右边的M,表示commit只提交暂存区,留下了工作区

[root@vm5 demo]# git commit -m "v1"

[root@vm5 demo]# git status -s

  M README.md

把当前目录全部提交,查看,全部在暂存区了

[root@vm5 demo]# git add .

[root@vm5 demo]# git status -s

M README.md

最后提交并且命名v2,查看状态,全部进入分支

[root@vm5 demo]# git commit -m "v2"

[root@vm5 demo]# git status -s

忽略隐藏文件

在创建工作区的时候会有隐藏文件,可以看见??

[root@vm5 demo]# touch .a

[root@vm5 demo]# git status -s

?? .a

编辑忽略该文件则正常查看了

[root@vm5 demo]# vim .gitignore

.*

[root@vm5 demo]# git status -s

[root@vm5 demo]# echo helloworld > test.txt

[root@vm5 demo]# git add test.txt

[root@vm5 demo]# git commit -m "add test.txt"

撤销文件修改

工作区文件别删除,使用checkout

[root@vm5 demo]# rm -f test.txt

[root@vm5 demo]# git status -s

D test.txt

[root@vm5 demo]# git checkout -- test.txt

取消暂存区文件

[root@vm5 demo]# git rm test.txt

[root@vm5 demo]# git status -s

D test.txt

[root@vm5 demo]# git reset HEAD test.txt

版本回退

[root@vm5 demo]# git rm test.txt

[root@vm5 demo]# git commit -m "delete test.txt"

[root@vm5 demo]# git reflog

58b1bc2 HEAD@{0}: commit: delete test.txt

...

[root@vm5 demo]# git reset --hard 6db53fe

github远程代码仓库

登录:GitHub: Let’s build from here · GitHub

生成并上传公钥,选择ssh的连接方式

[root@vm5 demo]# ssh-keygen

推送仓库

[root@vm5 demo]# git remote add origin git@github.com:westos007/demo.git

[root@vm5 demo]# git remote -v

origin git@github.com:westos007/demo.git (fetch)

origin git@github.com:westos007/demo.git (push)

切换分支,上传远程仓库

[root@vm5 demo]# git branch -M main

[root@vm5 demo]# git push -u origin main

克隆仓库

如何本地仓库没了,可以把远程仓库克隆下来

[root@vm5 ~]# rm -fr demo/

[root@vm5 ~]# git clone git@github.com:westos007/demo.git

[root@vm5 ~]# ls

demo

[root@vm5 ~]# cd demo/

[root@vm5 demo]# ls

README.md test.txt

[root@vm5 demo]# git remote -v

origin git@github.com:westos007/demo.git (fetch)

origin git@github.com:westos007/demo.git (push)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值