0%

git个人使用小结

这是在使用Git时的一些感触和小结。

为什么要使用Git

当你的代码改动时,你不想每次都去做注释,或者说每次要手动复制文件夹备份一下,这样很麻烦。为了能够写出干净的代码,不要的东西就大胆删去,有了Git完全就可以这样做。

总体流程

初始仓库

首先需要创建一个仓库。。。。【TODO,下次创建新仓库的时候再写吧】,一种是从0开始创建,另一种是对已有的文件夹添加Git版本控制

从已有文件夹中创建

切换到该文件夹下,输入$ git init初始化仓库,此时会有默认的master分支

$ git add .git commit将当前文件夹下的文件添加到仓库,如果有文件不想添加,提前写好.gitignore文件

这样,本地仓库已经创建好了,如果要添加远程库,首先需要在GitHub上创建一个远程库(不要add readme和许可证),然后通过git remote add origin 远程仓库地址 的方式关联远程库,可以使用$ git remote -v命令查看是否添加了远程库,接下来就可以通过$ git push origin branch-name将本地的分支推送到远程仓库了. 如果需要修改分支名,可以使用$ git branch -M oldname newname

操作流程

其实使用的流程很简单。将每一次备份都添加到一个新分支里,这样也不考虑要合并冲突的问题了。

1
2
3
4
5
6
7
8
9
10
11
12
查看分支
$ git branch
创建新分支
$ git branch (branchname)
转到分支
$ git checkout (branchname)
全部添加
$ git add .
提交修改
$ git commit -m"修改说明"
将更改应用到远程仓库,如果远程没有branchname会新建
$ git push origin (branchname)

Git ignore文件的编写

在你的项目文件夹下,除了代码文件,当然还会有各种各样的数据和结果文件,这就导致整个工程会很大,一般来说,原始数据是不会变的,而结果是可以重新生成的,因此在Git上不会备份原始数据和结果。这就需要去编写ignore文件。
步骤分为两步:

  1. 找一个对应你项目代码的模板,比如可以搜matlab ignore文件模板

  2. 在此基础上,再根据自己的需要选择保存或者不保存什么文件

示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
##---------------------------------------------------
## Remove autosaves generated by the Matlab editor
## We have git for backups!
##---------------------------------------------------

# Windows default autosave extension
*.asv

# OSX / *nix default autosave extension
*.m~

# Compiled MEX binaries (all platforms)
*.mex*

# Simulink Code Generation
slprj/

# Session info
octave-workspace

# Simulink autosave extension
.autosave

# Windows txt backup
*.bak

# sensor data
*.DAT

# output File
*.mat
*.fig
*.tiff
*.jpg

切换到以前的版本和回到未来的版本

首先使用git log命令查看提交记录,获取版本 ID:

然后使用git reset --hard ID回退到指定版本,这里的ID可以只输入前面几位

如果要回到最新版本,只需git reset --hard ID就可以了,这里的ID是最新版本的ID

如果忘记了最新版本的ID,可以使用git relog来查看

比较分支

利用Github上的Compare页面,我们可以很方便的比较两个分支的差异,具体做法为:在浏览器地址栏输入:

https://github.com/dzxia920/Calf-INS/compare/2489d10..19fed71

其格式为:

https://github.com/用户名/仓库名/compare/分支1..分支2

参考:

https://docs.github.com/zh/pull-requests/committing-changes-to-your-project/viewing-and-comparing-commits/comparing-commits

常用的Git命令

  1. 查看远程库
1
$ git remote [-v | --verbose]

git remote会列出每个远程库的简短名字,git remote -v会列出详细信息

  1. 将本地分支推送到远程主机
1
$ git push <远程主机名> <本地分支名>:<远程分支名>

例如:$ git push origin master表示,将本地的master分支推送到远程origin主机的master分支,如果远程master分支不存在,则会被新建。

  1. 分支操作
1
$ git branch
  • 查看当前有哪些分支:$ git branch
  • 新建一个dev分支:$ git branch dev
  • 切换到指定的dev分支:$ git checkout dev
  • 查看远程和本地分支:git branch -a
  • 删除远程分支devgit push origin --delete dev
  • 修改分支dev的名字:git branch -M dev2 version2