个人日常常用的一些Git命令汇总,SVN是最近才接触到的,一并放上。
Git
克隆项目:
1 | git clone "httpurl/git@" #从远端克隆项目到本地 |
常规提交流程:
1 | git add . |
首先通过git add .
使用通配符将所有文件(除了gitignore
文件中声明的不加入版本控制的文件以外)加入版本控制,然后通过git commit -m ""
提交到本地仓库,接着就是通过git pull origin main
拉取远程分支上的修改,这里也可以使用 git fetch
+ git merge
,默认的git pull
行为即为git fetch
+ git merge
,将远程分支的修改拉取下来之后,可能会发生冲突,需要手动选择保留远端更改还是本地更改,然后再进行提交git push origin main
,注意,此处不一定使用main
,pull
和push
最后一个参数为操作的分支,一般开发时不会对主分支进行改动,这里要看具体分支名决定。
新建分支:
1 | 新建分支时需要选定一个base分支,从base分支新建分支,即初始的新分支内容会与base分支完全一致 |
分支合并:
合并分支的操作可以有以下几种:远程合并到远程,远程合并到本地,本地合并到远程,本地合并到本地。
一般远程分支和远程分支的合并,可以通过提起pull request
来进行,这里写一下另外三种的命令。
1 | 当前处于develop分支 |
回滚提交:
要回滚提交,首先得知道需要回滚到的该次提交的id,一般可以在提交记录中找到,然后执行以下命令:
1 | git rebase -i "回滚到的那条提交的id"^ #^必须有,表示包含这个id的提交,然后会跳出选择框,将该次提交包括之后的提交都列出来,选择drop丢弃提交 |
这个回滚操作可能存在错误(但能用),如果有知道正确方法的朋友欢迎指正。
Subversion
克隆项目:
SVN与Git克隆项目的操作差不多,如果没有设置全局的SVN Config则需要在克隆时指定使用的用户名及密码。
1 | svn checkout "svn://url" --username xxx --password xxx |
常规提交:
SVN不支持使用通配符将文件添加到版本控制中,需要一个文件一个文件(或文件夹)进行添加,如果使用的是带有图形化界面的TortoiseSVN
则可以使用图形化界面批量化添加,个人使用的是纯命令行的Subversion
,所以只能用命令逐个添加。基本流程如下:
1 | svn add ./test.txt #添加单个文件,相对路径 |
查看提交日志:
由于SVN一般是直接用一台服务器做SVN仓库,不像github、gitee这样存在直观的提交记录,所以会经常查看提交日志来确定什么东西被更改了被谁更改了。命令如下:
1 | svn log #打印所有的提交记录的简略信息,相当于git log |