1、Git常用命令
用了挺长时间的git,感觉只需要掌握常用的命令基本就能满足个人开发的版本管理需求了,我把这些命令列出来供初学者学习,也算是给自己一个记录的笔记。
最常用命令
初始化:git init
查询目前branch状态:git status
添加所有有改动的文件从工作区进入暂存区:git add .
添加所有有改动的文件从暂存区到版本库,并添加备注:git commit -m "Vxx:test for sth"
查看所有版本记录:git log
查看最近3个版本记录:git log -3
延伸下,你要看几个就把3换成几~
添加标签:git tag
一般指令
暂存区返回到工作区:git reset HEAD
版本库返回到暂存区:git reset --hard/--mix/--soft/
查看所有被取消的版本:git relog
显示分区:git branch
创建分支,名字叫bug:git branch bug
移动到相应分支:git checkout master/bug
在master分支下,合并bug分支:git merge bug
删除bug分支:git branch -d bug
2、.gitignore使用方法
在一个文件夹里,会有各种各样的文件,他们的后缀名千奇百怪,作用不同。对于我们来说,有用的可能只有一部分。比如我本人平时工作用C语言开发,通过IAR进行编译之后,会生成一些文件,比如后缀名为.out, .map等等,这些文件是我们不想要去做版本管理的。原因有两个:
- 这种文件没办法编辑,里面的数据大多无法操作。
- 这种文件跟随源代码的变换,编译后也会变化。
但是你每次使用git add .
和git commit -m "Vxx:test for sth"
的时候,都会把文件夹下所有的文件都进行版本管理,那么以后你的版本管理就会显得非常乱。
这种时候,创建一个.gitignore就能解决问题。
.gitignore创建方法:
- 在.git文件夹相同的文件地址下,创建一个文本文件,然后将他改名为.gitignore。
- 我们想屏蔽.out, .map,打开文档,直接填入如下:
屏蔽.out:*.out
屏蔽.map:*.map
- 保存退出。
记住,.gitignore文件要在add和commit操作之前进行创建。
.gitignore进阶方法:
好了,上面那个是常规方法,我要介绍点值钱的方法了。
有的同学们应该和我一样懒,不想一个一个添加,只想管理我想要管理的文件夹和里面的文件,应该怎么编辑.gitignore呢?
我提供一个我常用的方案:
#ignore all
/*
#but not these three files
!.gitignore
!/UserHeader
!/UserSource
这个方案提供了一个反向操作,是我最常用的方法,先忽略所有文件,然后!表示,除了这些文件或文件夹。
比如!/UserSource表示的就是,根目录下的UserSource文件夹里的所有文件和文件夹都要进行版本管理。
这样操作简单,是我最爱的方法。
.gitignore再次进阶方法:
好了,我还有个究极懒人方法,可以直接得到一个非常通用的.gitignore文件。
利用Github
登录你的Github,新建一个仓库,在新建仓库的时候,有个选项,可以自动生成.gitignore,而且基于你用的项目开发语言,我这里选择C语言。
生成以后,你会在你的新仓库里找到这个.gitignore文件:
# Prerequisites
*.d
# Object files
*.o
*.ko
*.obj
*.elf
# Linker output
*.ilk
*.map
*.exp
# Precompiled Headers
*.gch
*.pch
# Libraries
*.lib
*.a
*.la
*.lo
# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib
# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex
# Debug files
*.dSYM/
*.su
*.idb
*.pdb
# Kernel Module Compile Results
*.mod*
*.cmd
.tmp_versions/
modules.order
Module.symvers
Mkfile.old
dkms.conf
可以看到,Github是很清楚C语言有哪些文件不需要管控版本的。
这三种方法你都可以用,看你喜欢了。
我最喜欢第二种,因为习惯了,你们呢?