git
GIT简介
GIT是一个分布式版本控制系统,除了git还有svn、cvs这样的版本控制系统,它们的区别在于一个是分布式一个是集中式
集中式就是svn和csv这样的版本控制系统,分布式是git
区别在于集中式的版本控制系统每次在写代码时都需要从服务器中拉取一份下来,并且如果服务器丢失了,那么所有的就都丢失了,你本机客户端仅保存当前的版本信息,换句话说,集中式就是把代码放在一个服务器上集中管理,你的所有回滚等操作都需要服务器的支持。
分布式的区别在于,每个人的电脑都是服务器,当你从主仓库拉取一份代码下来后,你的电脑就是服务器,无需担心主仓库被删或者找不到的情况,你可以自由在本地回滚,提交,当你想把自己的代码提交到主仓库时,只需要合并推送到主仓库就可以了,同时你可以把自己的代码新建一份仓库分享给其它人。
像集中式它们都有一个主版本号,所有的版本迭代都以这个版本号为主,而分布式因为每个客户端都是服务器,git没有固定的版本号,但是有一个由哈希算法算出的id,用来回滚用的,同时也有一个master仓库,这个仓库是一切分支仓库的主仓库,我们可以推送提交到master并合并到主仓库上,主仓库的版本号会迭代一次,我们客户端上的git版本号无论迭代多少次,都跟master无关,只有合并时,master才会迭代一次。
GIT基本使用
GIT下载完成后可以看到三个版本:GIT CMD,GIT bush,GIT GUI,其中CMD是windows环境下的命令行控制工具,bush是linux环境下的命令行,GUI是图形化操作界面,其中因为服务器一般搭建在linux环境下,所以我们一般常用的是GIT bush,
git config -l 查看配置
git config --system --list 查看系统配置
git config --global --list 查看用户配置
git所有的配置文件其实都保存在本地!
git config --global user.name "xxx"配置用户名
git config --global user.email "xxx"配置邮箱地址
GIT本地还有三个工作区域:工作目录(working directory)、暂存区(stage/index)、资源库(repository)或(git directory),如果再加上远程的git仓库(remote directory)就可以分为四个工作区域
把代码从工作目录放到暂存区:git add.
把代码从暂存区放到本地仓库:git commit
把代码从本地仓库提交到远程服务器:git push
把代码从远程服务器下载到本地仓库:git pull
把代码从本地仓库拿到暂存区:git reset
把代码从暂存区拿到工作目录:git checkout
配置SHH公钥
1.设置本机绑定SHH公钥,实现免密码登录
#进入C:\Users\administrator\.ssh目录
使用命令:ssh-keygen
2.将生成的公钥信息rsa-pub里面的内容复制到码云账户即可
3.使用码云创建一个仓库
GIT分支
git分支中的常用命令
# 列出所有本地分支
git branch
# 列出所有远程分支
gitbranch -r
# 新建一个分支,但依然停留在当前分支
git branch [branch-name]
# 新建一个分支,并切换到该分支
git checkout -b [branch]
# 合并指定分支到当前分支
git merge [branch]
# 删除分支
git branch -d [branch-name]
# 删除远程分支
git push origin --delete [branch-name]
git branch -dr [remote/branch]
忽略文件
有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设置文件等
在主目录下建立".gitgnore"文件,此文件有如下规则:
- 忽略文件中的空行或者以井号开始的行将会被忽略
- 可以使用Linux通配符,例如星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2})代表可选的字符串等
- 如果名称的最前面有一个感叹号,表示例外规则,将不被忽略
- 如果名称的最前面是一个路径分割符(/),表示要忽略的文件在此目录下,而子目录中的文件不被忽略
- 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件和目录都被忽略)
*.txt #忽略所有以.txt结尾的文件
!lib.txt #但lib.txt除外
/temp #仅忽略项目根目录下的todo文件,不包括其他目录temp
build/ #忽略build目录下的所有文件
doc/*.txt #会忽略 doc/notes.txt 但不包括doc/server/arch.txt
补充:linux常用命令
- cd :改变目录
- cd .. :回退到上一个目录,直接cd进入默认目录
- pwd:显示当前所在的目录路径
- ls(ll):都是列出当前目录中的所有文件,只不过ll列出的内容更为详细
- touch:新建一个文件如touch index.js 就会在当前目录下新建一个index.js文件
- rm:删除一个文件,rm index.js就会把index.js文件删除
- mkdir:新建一个目录,就是创建一个文件夹
- rm -r:删除一个文件夹,rm -r src删除src目录
- mv:移动文件,如:mv index.html test,意思是把index.html这个文件移动到test目录下,这样写必须保证文件和文件夹在同一目录下
- reset:重新初始化终端
- clear:清屏
- history:查看历史命令
- help:帮助
- exit:退出
-
:表示注释
创建GIT项目
两种方式:
创建本地仓库
git init
选择要创建的项目路径,右键选择git bash键入git init即可创建完成
克隆远程仓库
git clone [url]
选择要创建的项目路径,右键选择git bash键入git clone加上代码路径
··
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!