一、Git的下载
官网:https://git-scm.com,下载对应版本系统的版本。
下载太慢:https://npm.taobao.org/mirrors/git-for-windows/
无脑下一步即可,安装完使用即可
任意文件夹右击即可看到程序
- Git Bash:unix与linux命令行
- Git Cmd :windows命令行
- Git GUI:图形化界面git
linux
ctrl+滚轮可调整大小
二、Git的必要配置
查看配置: git config -l
查看系统配置:git config --system --list
设置用户名和邮箱
git config --global user.name lilei
git config --global user.email 1635435320@qq.com
查看全局配置(本地–用户配置):git config --global --list
master表示主分支,我们也可以创建我们自己的分支
三、git的工作流程
1.在工作目录中添加、修改文件;—userMapper.xml
2.将需要进行版本管理的文件放入暂存区域;------git add .
3.将暂存区域的的文件提交到git仓库;-----git commit
git 管理的三种状态:已修改(modified),已暂存(staged),已提交(committed)
四、git项目创建及克隆
1.创建全新的仓库,需要用git管理的项目的根目录执行
#在当前目录新建一个Git代码库
git init :初始化git项目,仅仅会产生一个.git文件,等于版本等的所有信息都在这个目录里面
2.另一种方式是克隆远程目录,由于是将远程服务器上的仓库完全镜像一份至本地
#克隆一个项目和他的整个代码历史(版本信息)
git clone [url]
五、git操作基本命令
git status:查询状态,红色表示没有被跟踪的文件(.git同级别目录文件)
**git add .**将这些(所有)红色的文件添加到暂存区中
此时检查状态,已经添加到暂存区,变为待提交状态
git commit -m <“new file 文件名”>:提交暂存区中的内容到本地仓库;-m 提交信息
此时检查状态,已提交状态
六 .配置忽略文件.gitgnore
- 1.忽略文件中的空行或以井号( # )开始的行将会被忽略。
- 2.可以使用Linux通配符。例如:星号(* )代表任意多个字符,问号( ? ) 代表-一个字符,方括号( [abc] )代表可选字符范围,大括号( {string1 ,rg… )代表可选的字符串等。
- 3.如果名称的最前面有一个感叹号(!) , 表示例外规则,将不被忽略。
- 4.如果名称的最前面是-一个路径分隔符(/) , 表示要忽略的文件在此目录下,而子目录中的文件不忽略。
- 5.如果名称的最后面是一个路径分隔符(1) , 表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
#为注释
*.txt #忽略所有.txt结尾的文件,这样的话上传就不会被选中!
!1ib. txt #但1ib. txt除外
/temp #仅忽略项月根目录下的TODO文件,不包括其它月录temp
build/ #忽略bui1d/目录下的所有文件
doc/*.txt #公忽略doc/notes. txt但不包括doc/server/arch. txt
七.配置SSH公钥及创建远程仓库
公钥:免密登录
ssh-keygen -t rsa:生成公钥。默认路径:/c/Users/Administrator/.ssh/id_rsa
产生两个文件:
命令行查询公钥
cat ~/.ssh/id_rsa.pub
创建仓库:gitee(码云为例)
克隆到本地:git clone url
八、关于git中分支的说明
分支相当于平行宇宙,互不影响,但是如果两个平行宇宙合并了,就需要做一些处理了
- git branch :列出本地所有分支
-
git branch -r :列出所有远程分支
-
git branch [brance-name]:新建一个分支,但依然停留在当前分支
-
git checkout -b [branch-name] 新建一个分支,并切换到该分支
-
git merge [branch] 合并指定分支到当前分支
-
git branch -d [branch-name] 删除分支
-
git push origin --delete [branch-name]
git branch -dr [remote/branch]
删除远程仓库
多个分支如果并行执行,就会导致我们的代码不冲突,也就是同时存在多个版本!
eg:
web-api -A(Restful.xx())
web-admin -B 会调用A(修改了A 的代码!)
web-app -C 会调用B和A的代码
如果冲突了只需要协商即可!
如果同一个文件在合并分支时都被修改了则会引起冲突;解决的办法就是我们可以修改冲突文件后重新提交:选择要保留他的代码还是你的代码!
master分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。