1. 什么是git:
- git 本地操作(是一个分布式的版本控制系统)
- 可以帮忙整理代码,并且保证代码不会被丢失(记录历史,只要代码提交到git上就永远不会丢失)
- 可以随时查看已提交的代码
- 可以通过pc端,android和 ios移动端,等各个终端来访问,可以随时随地修,公司没做完的事情可以回家接着干
- 可以团队合作(例如两个人同时修改了一行代码,也可以手动解决冲突,实现自动合并),且可以模块化和组件化
- git拥有强大的‘’分支‘’管理系统
工作原理:
2.git特点在哪:
- git 比较 svn,svn是一个集中式的版本控制系统,且需要一台中央服务器, git则是分布式管理, 每一台电脑相当于一个服务器,git的上传速度比svn要快,而且在svn中,每个文件都有一个文件夹(svn文件夹),文件夹一多就会乱,不易于管理,而git只有一个单独的文件夹(git文件夹)
3.如何使用git:
- git config --global user.name + "名字" (配置用户)
- git config --global user.email + "邮箱" (配置邮箱)
- git config --gloobal --replace-all user.name + "名字"(替换原来的用户名)
- git config --gloobal --replace-all user.email + "邮箱"(替换原来的邮箱)
- git config --gloobal --unset user.name + "原始名字"(删除用户)
- git config --gloobal --unset user.name + "原始邮箱"(删除邮箱)
- git config --list查看当前用户配置信息(已配置好的在最下面两行可以看到配置信息和邮箱)
- 配置好后就需要初始化git (一个项目只能初始化一次,不能嵌套)
- git init 告诉git哪个文件夹被git所管理
4.常见操作命令
pwd(print working directory) 打印当前用户
- rm -rf + 文件夹 (删除文件)
- rm + 文件名 (删除文件)
- mkdir + 文件名 (创建目录)
- cd + 目录名 (改变路径)
- ls -al (展示所有文件列表)
- touch + 文件名 (创建文件)
- cat + 文件名 (查看文件内容)
- vi + 文件名 (修改文件){i: 插入模式 esc 退出编辑 :q! 强制退出 :wq 保存并退出}
- git rm --cached + 文件名 (删除暂存区)
- git add . / -A / + 文件名 (添加到暂存区)
- git commit -m“本次提交文件说明” (添加到历史区)
- git log (可以查看版本号,查看历史状态)
- clear 清除页面已输入内容
git 的对比
- git diff (工作区和暂存区)
- git diff + 分支名 (工作区和历史区)
- git diff --cached (暂存区和历史区的比较)
撤销(缺点是无法再回去),从暂存区中将工作区的内容覆盖掉
- git checkout + 分支名 (回到上次缓存区的内容)
- git reset HEAD + 文件名(回退到上一次的缓存区)
回滚历史版本
- git reflog 查看所有历史版本
- git reset --hard + 版本号(回到历史版本)
分支管理
- git branch (查看所有分支)
- git branch + 分支名(创建分支)
- git checkout + 分支名 (切换分支)
- git branch -D + 分支名 (删除分支,不能删除已在当前要删除分支里的分支上,添加到历史区此时两个分支就没关系了)
- git checkout -b + 分支名 (创建并切换分支,分支有更改不能直接切换,可以提交更改或暂存更改)
- git stash (暂存文件)
- git stash pop (还原暂存区内容)
- 分支有更改不能直接切换,可以提交更改或者暂存更改,暂时使用过渡区覆盖掉。
- git merge + 分支名(合并分支)
-
echo "内容" >> + 文件名 (输入文件内容,一个大于号表示写入,两个大于号表示追加)
-
解决冲突的办法:遇到冲突只能手动去解决,留下想要的结果,再次提交
-
git log --graph (加载轨迹)
-
git log --oneline --graph (加载直线轨迹)