SVN是集中版本管理,所有的代码都在中央服务器上
git是去中心化,每个服务器上都有一个完整的代码库
github的使用
由于在本地与gitee交互操作都需要账号密码,所以可以配置一个公钥和密钥交互的sshkey,每次进行操作时都不用输入用户名密码了。非常方便
配置sshkey的三步:
配置多个账号的时候,需要把rsa这个文件改名,避免冲突
命令是:
m'v id_rsa id_rsa_qq (把id_rsa改名为id_rsa_qq)
例如:
HTTPS和SSH
复制,是为了把这个仓克隆到本地
克隆命令:
git clone 上面复制的地址
查看当前的仓库里本地文件的状态:
git status
修改之后推送的命令和步骤:
vim 文件名 ,保存之后退出
git add <file> 追踪这个文件,多个文件的话
也可以是 git add.
推送代码命令:
git commit -m "本次提交文件的说明"
然后推送:
git push
拉取命令
git pull
git项目分支操作
查看本地分支的命令:
git branch
查看所有远程端的分支的命令:
git branch -a
如何在本地创建一个分支:
git checkout -b branch1 (创建一个branch1分支)
git分支的删除操作
git branch -d branch1 (但是删除时,工作分支不能是branch1)
要先切换到别的分支
git checkout master (切换到master分支)
git branch -d branch1 (再删除branch1分支,只支持删除本地的分支,不支持删除远程的分支 ,-d是删除,-D是强制删除)
git branch -r -d origin/branch1 (删除远程分支,但是实际没有删除)
git push origin :branch1 (然后就需要把本地的操作推送到远程来执行,origin后面一定要加个空格)
git merge用法
git合并分支操作,是把某一个分支内容合并到一个分支上
git merge +需要合并的分支名
一、开发分支(dev)上的代码达到上线的标准后,要合并到 master 分支
git checkout dev git pull git checkout master git merge dev git push -u origin master
二、当master代码改动了,需要更新开发分支(dev)上的代码
git checkout master git pull git checkout dev git merge master git push -u origin dev
如何解决合并过程中遇到的冲突?
项目的版本操作
例如,版本回退,回退都是本地回退
回退到上一个版本
git reset --hard HEAD^ (^要回退多少个版本就 多少个 ^)
回退到指定版本,根据ID号来回退指定版本
通过这个命令找到版本对应的ID:git reflog
然后回退命令就是:git reset --hard 476d2f5
tag命令
列出所有tag:
git tag
新建tag
使用git tag
命令跟上tag名字,直接创建一个tag。
git tag v1.0
上面创建一个名为v1.0
的tag。使用git tag
命令可以看到新增加的tag。
还可以加上-a
参数来创建一个带备注的tag,备注信息由-m
指定。如果你未传入-m
则创建过程系统会自动为你打开编辑器让你填写备注信息。
git tag -a tagName -m "my tag"
查看tag详细信息
git show
命令可以查看tag的详细信息,包括commit号等。
git show tagName
将tag同步到远程服务器
同提交代码后,使用git push
来推送到远程服务器一样,tag
也需要进行推送才能到远端服务器。
使用git push origin [tagName]
推送单个分支。
git push origin v1.0
推送本地所有tag,使用git push origin --tags
。
git push origin --tags
假设存在tag
:12345
git tag -d 12345 #删除本地记录
git push origin :refs/tags/12345 #删除远程记录