代码管理工具
没有代码管理 会出现什么问题
- 版本备份 , 版本混乱问题
- 团队合作, 代码冲突
- 团队同时自己电脑一份代码, 那么两人,更改同一文件, 就会冲突,如何把多人的代码 合并成 一份代码
- 权限控制
- 对于新手 更改 源代码是 很危险的
- 追责任的时候
- 没有办法知道 哪个代码 是who 写的
代码管理的功能
- 能了解项目的内容变化
- 团队开发, 合并所有人的代码,成一份
____
代码管理工具
- 集中式管理工具 (一台超级计算机来管理(作为服务器))
- SVN
- 分布式管理工具
- git (每个主机都可以管理自己的代码,都有自己的版本库)
_____
- git (每个主机都可以管理自己的代码,都有自己的版本库)
git
git的工作原理
- 工作区(working directory): 仓库文件(.git)之外的内容
- 版本库 (.git 文件)
- 缓存区(stage) --》
git add .
文件修改放到stage中 分支 (master) , git 自动创建的第一个分支(真正的版本库)
缓冲区 存放 到 当前分支中
git commit -m "xxx"
HEAD 指针: 用来指向当前的分支 (几可以存在很多的分支)
- 缓存区(stage) --》
工作区 的 内容 和 分支 同步
一些专业术语
仓库, 分支, .gitInore
______
git的本地使用
git的配置 (修改的是
项目中的(workSpace).git/config
文件)进入项目的跟文件
建立本地的仓库
git init
配置用户名, 知道哪些行为是
who
干的git config "user.name" 用户名
- git的状态
git status
- 停留在工作区
- 停留在缓存区
- 加入到分支中了
版本控制 , 可以在
自己
电脑上操作- 提交版本
- 要求, git提交到版本仓库,之前要先添加到缓存区域(性能考虑)
- 具体代码 提交到本地仓库
添加到缓存git add .
添加到仓库git commit -m "标签"
- 版本回退
- 好处 当现在搞坏了, 可以回到以前的版本的代码
git reset --hard 版本号
- 好处 当现在搞坏了, 可以回到以前的版本的代码
- 版本日志 --> 查看who 干了 什么
git log
- note
git reflog
查看指令使用记录
使用场景: 当回到以前版本上时候, 又想回到 最新的版本:但是不知道版本号: 可以使用 这个 命令, 查看最新的版本号
- 提交版本
git的远程仓库,适合团队开发
- 搭建远程仓库
- 在github 上托管项目
- 国内 一般就在 oschina 上托管项目: 完全免费
- 远程仓库中的问题思考
- 任何防止其他人对自己的项目写操作
- 通过 登陆 用户名, 和密码:
- 如何防止密码, 用户名传输过程中被盗
- ssh (Secure Shell)主要就是想解决口令在网上明文传输
的问题
- ssh (Secure Shell)主要就是想解决口令在网上明文传输
- 在 github 中添加 我们生成的 公钥, 而我们电脑自己保存私钥:使用时候, 两个相配对
- 任何防止其他人对自己的项目写操作
- 本机 和 远程仓库的配置 见题外
- 配置ssh key : 在远程仓库中 添加 对应客户端的 公钥
- 代码同步
- 服务器更改了, 客户端通过 pull, 来同步
- 客户端更改了, 客户端通过 push, 来同步
- 客户端直接从服务器 客户 git clone ,,,
git 提示的
- 错误
untracked files 新建的文件,没有在缓存区, 和分支中
changes not staged for commit: 修改了某个在分支的文件中
题外
ssh的验证方式 (RSA 加密)
根据口令的方式 (不够安全)
这种 就是采用 远程登陆到 对应的服务器上 , 来进行操作:
但是 不安全根据 密钥的方式
配置: 1> 把自己电脑上生成的 公钥 放到 对应的服务器上
2> 客户端开 ssh 客户端程序, 把私钥 添加到ssh 客户端程序中验证: 是 采用 公钥 , 私钥 进行验证: 不用登陆, 但是过程大概相对比较长
如何在自己电脑上生成公钥,和私钥,配置ssh
进入.ssh文件夹
$ cd ~/.ssh
生成私钥&公钥
$ ssh-keygen -t rsa -C "xxx@126.com"
注意:邮箱最好是 git.os 注册的网易邮箱
查看公钥内容,把公钥给服务器
$ cat oschina_rsa.pub
启动ssh客户端程序
$ eval "$(ssh-agent -s)"
给ssh客户端传递私钥
$ ssh-add ~/.ssh/oschina_rsa
ssh验证服务器
$ ssh -T git@git.oschina.net
Welcome to Git@OSC, CPCoder! 代表成功了, 下次在命令行中可以直接 git命令了。 配置OK了
____
总结
学习的方法
- 先知道原理
- 什么场景下,怎么操作
- 其次 才知道 哪些命令, 代表了什么操作
______