Git学习——代码版本管理器,多人开发工具
博主我通过对Git与GitHub、GitLab学习,整理出这篇文章,欢迎大家白嫖(bushi),关注再走吧,😘
一、git软件下载
打开 [git官网] https://git-scm.com/,下载git对应操作系统的版本
官网下载太慢可以使用淘宝镜像下载:http://npm.taobao.org/mirrors/git-for-windows/
二、基础linux命令(git bash相当于在windows系统的linux命令)
1)、cd : 改变目录。
2)、cd . . 回退到上一个目录,直接cd进入默认目录
3)、pwd : 显示当前所在的目录路径。
4)、ls(ll): 都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更为详细。
5)touch : 新建一个文件 如 touch index.js 就会在当前目录下新建一个index.js文件。
6)rm: 删除一个文件, rm index.js 就会把index.js文件删除。
7)mkdir: 新建一个目录,就是新建一个文件夹。
8)rm -r : 删除一个文件夹, rm -r src 删除src目录
rm -rf / 切勿在Linux中尝试!删除电脑中全部文件
9)mv 移动文件, mv index.html src index.html 是我们要移动的文件, src 是目标文件夹,当然, 这样写,必须保证文件和目标文件夹在同一目录下。
10)reset 重新初始化终端/清屏。
11)clear 清屏。
12)history 查看命令历史。
13)help 帮助。
14)exit 退出。
15)#表示注释
三、Git配置
查看git配置:
git config -l
设置用户名与邮箱(用户标识,必要)
当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中:
git config --global user.name "plord" #名称
git config --global user.email 1538581962@qq.com #邮箱
只需要做一次这个设置,如果你传递了–global 选项,因为Git将总是会使用该信息来处理你在系统中所做的一切操作。如果你希望在一个特定的项目中使用不同的名称或e-mail地址,你可以在该项目中运行该命令而不要–global选项。总之–global为全局配置,不加为某个项目的特定配置。
四、git基本理论
① 工作区域:
Working Directory:工作区,平时存放项目代码的地方
Staging Area:暂存区,用于临时存放改动
Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据
Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
② 工作流程
git的工作流程一般是这样的:
1、在工作目录中添加、修改文件;
2、将需要进行版本管理的文件放入暂存区域;
3、将暂存区域的文件提交到git仓库。
③ 文件的四种状态
Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件
Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改 !
Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified
五、Git本地仓库的使用
1、建立一个工作目录
① 新建一个文件夹
② 打开git bash命令终端
③ 输入 git init
这样就可以看到文件夹中多了一个.git文件,代表这个文件夹已经成为了工作目录。
2、将文件添加到暂存区
① 查看暂存区的状态
git status
② 将文件提交到暂存区
#提交当前文件夹指定文件
git add [filename]
#提交当前目录下文件
git add .
#提交指定路径下文件
git add [path][./filename]
若添加错误,可以使用下列命令将文件移除暂存区。
#restore只能移除暂存区文件
git restore --staged [filename]
#reset命令可以移除所有区域文件
git reset HEAD [filename]
3、将文件从暂存区提交到本地仓库
通过命令将暂存区文件提交到本地仓库
git commit -m '备注信息'
可以通过
git log
查看提交的记录
通过
git checkout [path/./filename]
更新当前目录/文件
4、本地仓库文件修改与提交
#添加同名文件到暂存区
git add [exsitFileName]
#提交到本地仓库
git commit -m "备注信息"
#查看缓存区状态
git status
#查看区别
git diff [filename]
#删除操作
#--查看本地仓库文件目录
git ls-files
#通过rm删除本地仓库文件
git rm [filename]
5、版本回退
#查看版本记录
$ git log --pretty=oneline
#查看s所有记录
$ git reflog
#回退一个版本
git reset --hard HEAD^
#回退n个版本
git reset --hard HEAD~n
#版本回归
git reset --hard [commit的唯一标识]
六、GitHub远程仓库的使用
1、通过SSH下载项目
① 通过命令找到SSH Key
ssh-keygen -t rsa -C 'github注册邮箱账号'
找到id_rsa.pub文件,打开拿到SSH Key。
② 到github-setting中设置添加
通过命令查看即可是否生效
ssh -T git@github.com
③ 通过SSH下载项目
git clone [SSH地址]
2、将项目传到github
① github中创建仓库
在Your respositories中创建即可
② 提交项目步骤
- 提交项目到本地仓库
git add [filename]
git commit -m '备注信息'
- 连接远程仓库
git remote add origin git@github.com:用户名/仓库名.git
- 将本地仓库文件推到远程主干
git push -u origin master
- 第二次提交直接push,跳过步骤2和3
git push
七、git分支操作
1、本地分支相关操作
# 列出所有本地分支
git branch
# 新建一个分支,但依然停留在当前分支
git branch [branch-name]
# 新建一个分支,并切换到该分支
git checkout -b [branch]
# 切换到指定分支
git checkout [branch]
# 合并指定分支到当前分支
git merge [branch]
# 删除分支(不能再当前分支删除当前分支)
git branch -d [branch-name]
git branch -D [branch-name]#强制删除
2、远程分支相关操作
#更新远程状态
git fetch
#查看本地和远程分支
git branch -a
#推送本地分支到远程
git push origin [branch]
#删除远程分支
git push origin :[branch]
#拉取远程指定分支并在本地创建分支
git checkout -b local_branch origin/[branch]
3、解决冲突
① 个人提交冲突
若分支内容和主干内容不是追加而是修改(同一文件相同行),则在合并分支时会产生冲突。
这时会弹出(master|MERGING)状态下的目录,在该状态下查看具体文件,根据需求修改文件(自行处理)然后通过add和commit操作提交即可。
② 多人提交冲突(远程仓库)
若在提交时,两个人同时对相同文件相同行进行修改,也会出现分支内容和主干内容不是追加而是修改(同一文件相同行),则在推送时会产生冲突。(或者是push时与远程文件产生冲突)
① 拉取远程仓库的代码
git pull
② 再次提交
add和commit
八、Idea集成Git操作
1、在Idea配置Git
在设置中搜索git,然后配置路径
2、为项目创建git仓库
选中该项目所在的文件夹
3、将项目提交到本地仓库
先add
再commit
4、将项目提交到远程仓库
① 通过SSH或HTTPS绑定远程仓库
② push一下
本地仓库可以通过右上角√进行分支提交操作,旁边的↙进行分支更新。
而远程仓库要通过↗进行远程的版本提交,和其上方的↙进行远程分支的拉取
5、分支管理
可以通过右下角操作分支
九、GitLab远程仓库的使用
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
GitLab和Github区别是,一个设置权限要收费,一个不用收费。
所以GitLab也换汤不换药,一般再团队协作中会用到,会了以上操作即可快速上手GItLab!
以下两篇博客有详细介绍:
如果你是项目负责人:https://blog.csdn.net/justlpf/article/details/80681853
如果你是项目参与者:https://blog.csdn.net/LT11hka/article/details/103092337