git和svn的区别
- git和svn都是版本控制软件,但是git是分布式的,svn是集中式
- 如果远程库down了,git仍然可以进行版本控制,但是svn不行
- git为保有原始数据,尽量做增加操作,对每次更改做了快照。
- git创建分支是创建了一个指针,svn创建分支会复制出整个链的数据
git安装
略
git原理
git中定义的存储空间为工作区、暂存区、本地库、远程库,git的命令都是围绕这几个存储空间运行的
git常用命令
git status :能够查看工作区及暂存区的状态;
git add <file>: 将工作区文件的更改添加到暂存区,还没有被提交到本地库
git commit -m "注释" <file> :将暂存区的更改提交到本地库。
如果之前已经提交本地库的文件,修改后可以直接commit,不需要经过add添加到本地库
------------------
版本回退
git log :查看每次提交的详细信息\git log --oneline\git log --pretty=oneline
git reflog:查看每次提交的所有详细信息
git reset --soft <id> :只有本地库中的文件内容回退到了之前的版本
git reset --mixed <id> : 只有本地库、暂存区中的文件回退到之前的版本
git reset --hard <id> :将本地库、暂存区、工作区的文件回退到之前的版本
------------------
对比
git diff :默认是工作区和暂存区内容做对比
------------------
分支
git branch -v :查看所有存在的分支
git branch <name> :创建分支
git switch <name> :切换分支\git checkout <name>
git merge <branch name> :合并分支代码,一般是将分支代码合并到master分支上
------------------
和远程库之间的交互
git init :对本地目录做一个初始化
git remote -v :查看是否设置了远程库
git remote add <远程库别名> <远程库url/ssh> :添加远程库,可以通过http或者ssh的形式
git clone <远程库地址>
git push <远程库别名> <远程库分支>
git pull <远程库url> :相当于同时操作了两步,git fetch 和git merge
github可以用于团队内的协同开发,
也可以用于跨团队的开发(需要将代码fork到自己的远程仓库,然后修改的代码,发起pull request)