Git工具的使用
团队开发如果没有版本控制,对代码、文档、资源文件的管控将是一场噩梦
- 首先了解一下版本控制的历史
- 1990s ----> VSS (Visual Source Safe) / CVS (Concurrent Version System) ----> 锁定模式
- 2000 ----> Subversion (SVN) ----> 合并模式
- 2005 -----> Git -----> 合并模式 ----> 分布式版本控制系统
- Git的使用:
把一个文件夹里的东西放到本地仓库里面(第一次提交)
- 把一个文件夹里的东西放到本地仓库里面(第一次提交)
-
cd 文件夹名 ----> 进入该文件夹里面
-
git init ----> 初始化(把一个文件夹变成版本控制的本地仓库)
- 会多一个.git 的隐藏文件夹,即你创建的本地仓库,该文件夹里面的东西绝对不能动
- ls .git -----> 可以查看里面有些什么东西
-
git status ----> 查看状态:(查看文件夹即工作目录和仓库状态是否一致)—> 该命令还可以提示你接下来应该做什么
-
git add filename(文件名) -----> 把文件添加到仓库的缓存区(暂存区)
-
git add . —> 将所有文件都放在缓存区
- 这是Git基本工作流程的第一步
-
git rm --cached 文件名 -----> 从缓存区移除文件
-
如果第一次使用git执行提交操作,需要先执行两条配置命令
- git config --global user.email “jackfrued@126.com”
- git config --global user.name “jackfrued”
-
git commit -m “…原因…” ----> 把缓存区的内容同步到本地仓库中
- git commit可以同时提交目录结构和说明
- 该命令以实际提交改动,此时改动已经提交到了HEAD,但是还没有到远端仓库
-
git log ----> 查看提交日志
- git log --abbrev-commit --graph --pretty=oneline --> 以比较简短的版本查看
- git log只显示当前分支的变动
-
不小心误删除文件或者文件夹
- 不小心误删除文件或者文件夹
- rm hello.py
- rm -rf html
- git restore 文件名/ 文件夹名 -----> 用仓库的内容恢复工作区
- 不小心改错文件了,不想修改了(误修改)
- git status
- git restore 文件名 —> 用仓库的内容恢复工作区
- 不小心误删文件了,并使用了git add . 保存进暂存区了,需要两个步骤
- git restore --staged 文件名
- git restore 文件名
版本回退
- 回到初始版本
- git reset 版本号 -----> 版本回退
- git reset --hard 版本号 -----> 版本回退
- –soft -----> 只回退仓库,不回退暂存区和工作区
- –mixed ----> 回退仓库和暂存区,但是不回退工作区(默认)
- –hard ----> 将工作区、仓库和暂存区都回退到指定版本
- 在做了回退之后,又想看到未来版本的版本号,就可以用下面的方式来查看
- git reflog —> 可以查看到所有版本的初始号
设置远端仓库并做文件的交互
- 设置远端仓库
- git remote -v ----查看
- git remote add origin 仓库的URL
- git remote remove origin
- 将本地仓库内容推送到服务器(上传) — 第一次建立联系
- git push -u origin master
- 在前面我们通过执行git commit -m "…原因…"命令已经将改动保存在本地仓库的HEAD里面了,再执行该命令就可以将这些改动提交到远端仓库
- 可以将master换成你想要推送的任何分支
- 当上传过一次之后,再上传时就可以直接写git push
- git push -u origin master
- 将仓库的东西克隆到本地
- git clone --depth=1 仓库的URL 文件夹的名字 (代表只克隆最后的那个版本)
- 从仓库中下拉内容到本地(看到他人的更新)
- git pull ----> git fetch + git merge
配置SSH免密访问
- 配置SSH免密访问
- 对称加密:加密和解密是同一个密钥
- attack at dawn -----> dwwdnf dw gdzq (每个字母往后面挪三个字母)
- 非对称加密:加密和解密不是同一个密钥 ----> RSA
- 密钥对:公钥、私钥,用公钥加密的内容,只有私钥的持有者才能解密
- 如果要免密访问,首先要生成密钥对,把其中的公钥部署到Git服务器上,自己保管好私钥
- ssh-keygen -t rsa -b 2048
- -t ----> 控制算法
- -b ----> 比特
- -C ----- 邮箱
- id_rsa 中保存的是自己的私钥
- id_rsa.pub 中保存的是公钥
解决冲突
-
解决冲突
- git pull ---- Merge Conflict 将代码拿下来
- git diff ----- 找冲突的位置
-
找当事人协商解决如何解决冲突,不要武断!!!
-
重新本地试试版本控制(git add -----> git commit)
-
重新向服务器推内容(git push )
-
克隆之后没有虚拟环境和依赖项,要自己安装