Git和SVN的区别
SVN:集中版本控制
- 所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改
Git: 分布式版本控制
- 用户本地拥有全部代码,可离线本地提交,待联网可push到远程服务器
两者区别:
- SVN是集中版本控制,版本库放在中央服务器,必须联网才能使用
- Git是分布式版本控制,没有中央服务器,用户本地拥有完整的版本库,联网之后可将本地仓库同步到远程服务器
Git配置
查看配置
git config -l
设置用户名、邮箱
git config --global user.name "xxx"
git config --global user.email xxx@qq.com
ssh配置
- git clone 支持https和git两种方式下载源码
https和ssh的区别:
- https: git clone 和 git pull 无限制,git push 需要提供 credential,一般是你的 github(如果 remote repository 托管在 github 上的话)的用户名和密码
- ssh:因为需要在托管平台上设置 ssh public key,所以要求你必须是该 repository 的拥有者或者管理员。git push 时,无需输入用户名,如果在生成 ssh key 的时候设置了密码,则需要输入密码,否则不需要。
- 生成秘钥
ssh-keygen -t rsa -C "这里换上你的邮箱"
- 在生成的.ssh文件中打开id_rsa.pub,将内容复制到GitHub的SSH keys中
Git基本理论
工作区域:工作目录、暂存区、资源区
Git命令备忘录
# 关联远程仓库
$ git remote add origin [ssh地址]
# .gitignore: Cpp
*.exe
*.out
*.app
.vscode
*.bat
# .gitignore: java
*.iml
*.ipr
.idea
.classpath
.project
.settings/
bin/
target/
*.jar
*.class
*.log
*.lock
Git分支
# 查看分支
git branch
# 查看远程分支
git branch -r
# 创建远程分支并立即切换到新分支
git checkout [name]
# 添加分支dev
git branch dev
# 删除分支
git branch -d [branchname]
# 切换分支
git checkout [分支名]
# 合并到当前分支
git merge [branchname]
# 创建远程分支
git push origin [name]