1.git介绍
Git是一个开源的版本控制系统,常用于项目代码管理,文件管理等场景。
可以简单理解为一个仓库 ,用来存储并管理 你存入的东西。最重要的一个功能就是版本管理。
git服务会记录每一次修改历史,用户可以翻看历史版本或者还原到某一个版本。
2.本地仓库与远程仓库
2.1远程仓库
远程仓库,相当于一个放置在别人电脑上的git仓库,可以使用gitee,github等创建并管理远程仓库。
2.2 本地仓库
本地仓库就是放置在你自己电脑上的git仓库,存储并管理你存入的东西。
2.2.1 相关常用代码操作
#创建或者进入一个文件夹,这里讲解进入一个文件夹
cd d:CbMall/user
#初始化本地仓库
git init
#将所有文件提交到暂存区
git add .
#将代码提交到本地仓库,-m是为了标记后面简述提交。提交完后,本地仓库里面就算有了一个版本
git commit -m "first commit"
#查看日志
git log
#日志示例,commit 后面一串b9e3a0d708ee5a81ea5ff383c6dabe716eec8cf1就是id
#commit b9e3a0d708ee5a81ea5ff383c6dabe716eec8cf1 (HEAD -> master)
#回滚代码仓库,有三种模式,--soft仅仅将头指针恢复,已经add的暂存区以及工作空间的所有东西都不变。--mixed,就将头恢复掉,已经add的暂存区也会丢失掉,工作空间的代码什么的是不变的。--hard,那么一切就全都恢复了,头变,aad的暂存区消失,代码什么的也恢复到以前状态。
git reset --hard 要回滚的id
#也可以使用其他的方式,比如回滚到上一个版本,^代表上一个版本的意思,HEAD代表当前仓库的指向,当前HEAD指向master,就代表回滚到master上一次提交的版本
git reset --hard HEAD^
#后面的~3,代表以当前版本为基数,回滚多少次。HEAD~3代表回滚master前三个版本
git reset --hard HEAD~3
#查看当前文件是否被改动
git status
#查看提交历史,可以查看当前版本库的提交历史,凡是对仓库版本进行迭代的都会出现在这个里面,包括你回滚版本都会出现在这个历史中
git reflog
2.2.2分支
分支,可以简单的理解为一个副本或者叫做备份。在分支上所做的东西,影响不了其他的分支或者主体。除非合并等操作。当我们在开发中,无论做什么操作都建议使用分支,因为在团队开发中,master只有一个,合作开发里任何人都可以从master里拉取代码,拉取时master后创建分支,分支名改为你要做的操作,比如修改某某文件,修改什么什么bug,单词以下划线做分割,然后在提交一个版本。
#创建分支。git branch 如果后面跟着名字则会创建分支,但不会切换,如果没有,则查看分支
git branch dev
#切换分支,git checkout 后面如果是分支名称则切换过去
git checkout dev
#或者使用git checkout -b参数来创建一个分支,创建完成分支后会自动切换过去
git checkout -b dev
#git合并分支,当我们新建分支并做完工作之后,想要把分支提交至master,只需要切换到master仓库,并执行git merge 分支名就可以了
git merge dev
#删除本地分支:git branch -D
git branch -D 分支名
2.3 本地仓库和远程仓库之间的一系列操作
2.3.1本地到远程
mkdir cb_mall
cd cb_mall
#初始化本地仓库
git init
#将所有文件提交到暂存区
git add .
#将代码提交到本地仓库
git commit -m "first commit"
#添加远程仓库
git remote add origin https://gitee.com/xwas5992/cb_mall.git
#验证远程仓库
git remote -v
#首次推送(使用 -u 设置上游分支)push:将本地仓库与远程仓库合并-u:将本地仓库分支与远程仓库分支一起合并,就是说将master的分支也提交上去,这样你就可以在远程仓库上看到你在本地仓库的master中创建了多少分支,不加这个参数只将当前的master与远程的合并,没有分支的历史记录,也不能切换分支origin:远程仓库的意思,如果这个仓库是远程的那么必须使用这个选项master:提交本地matser分支仓库
git push -u origin "master"
# 后续推送只需
git push
2.3.2远程到本地
#先进入想要放置代码的文件夹里
cd d:Cbmall/user
#克隆远端仓库的所有代码和分支到本地
git clone https://gitee.com/czstudio-bh/CZ-internship-tracking.git
2.3.3更改现有仓库的远程连接
cd existing_git_repo
git remote set-url origin 新的仓库地址
git push -u origin "master"