如果想对某个目录下的文件进行版本控制,可以利用git来进行版本控制。
操作步骤1:
进入需要版本控制的目录下
cd /test
操作步骤2:
初始化仓库
git init
在执行完git init后,目录下会产生一个.git的子目录,该目录中记录着git仓库中所有的文件。
克隆一个仓库就是将一个远程仓库中某个仓库的全部信息(文件信息和版本信息
)拷贝到本地。
HTTPS协议方式
在GitHub远程仓库中获取某个仓库的Https协议的方式。
git clone https://github.com/vuejs/awesome-vue.git
克隆完成后结果:
此时就会在目录下创建,以相应仓库名称命名的文件夹,该文件夹下保存了仓库的所有信息。
如果本地仓库的名称和克隆仓库的名称不同,可以通过git clone url name
方式自定义本地仓库名称。
Git中文件状态变化周期如下:
未追踪状态:表示没有添加进仓库进行追踪的文件。
未修改状态:表示已经添加至仓库中,且没有进行修改的文件。
修改状态:表示已经添加至仓库中,且已经修改过的文件。
暂存状态:表示已经添加至本地仓库,但是没有提交的文件。
git status
命令用来查看文件的状态。
这种提示表示,所有已跟踪文件在上次提交后都未被修改,且没有出现任何处于未跟踪状态的新文件。
git status -s
或者git status --short
命令表示以简短的形式查看文件的状态。
git add filename
命令用来跟踪filename这个文件名,其中filename可以*通配符表示多个字符。当filename为文件时,表示追踪该文件,当filename为文件夹时,表示追踪该文件夹下所有文件。
git add *
表示添加所有文件。
git add
指令是一个多功能命令:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。将这个命令理解为“精确地将内容添加到下一次提交中”而不是“将一个文件添加到项目中”要更加合适。
表示忽略追踪哪些文件。通常是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。
创建.gitignore
文件,每一行中填写需要忽略的文件名称的正则表达式。
文件.gitignore的格式规范如下:
glob模式
是指shell所使用的简化了的正则表达式:# 忽略所有的.a文件
.a
# 跟踪所有的lib.a,即便你在前面忽略了.a文件
!lib.a
# 只忽略当前目录下的TODO文件,而不忽略subdir/TODO
/TODO
# 忽略任何目录下名为build的文件夹
build/
# 忽略doc/notes.txt, 但不忽略doc/server/arch.txt
doc/*.txt
# 忽略doc/目录及其所有子目录下的.pdf文件
doc/**/*.pdf
git diff
表示查看尚未暂存的文件更新了哪些部分。比较的是工作目录中当前文件和暂存区域快照之间的差异。也就是修改之后还没有暂存起来的变化内容。
git diff --staged
表示查看已暂存的将要添加到下一次提交里的内容,对比已暂存文件与最后一次提交的文件差异。
git commit
命令用来将已经暂存的文件提交。
在提交更新之前,需要确认还有什么已修改或新建的文件还没有git add过,否则提交的时候不会记录这些尚未暂存的变化。这些已修改但未暂存的文件只会保留在本地磁盘。
git commit -m "commits"
命令用来在提交暂存文件时,提交相应的注释信息。
git commit -a -m "comments"
命令用来自动把所有已经跟踪过的文件
暂存起来一并提交。
新建的文件无法被提交!
要从Git中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区移除),然后提交。
git rm filename
命令用来从删除指定的文件,并从git暂存区中移除相应的文件。
如果要删除之前修改过或已经放在暂存区的文件,则必须使用强制删除选项-f。
git rm --cached filename
命令表示将filename从暂存区中移除,但是不删除本地磁盘中文件。
git log
命令用来查看提交历史信息。
git log -p -n
命令用来查看每次提交所引入的差异,-n表示显示最近n次的差异
git remote -v
命令显示需要读写远程仓库使用的git保存的简写与其对应的url。
git remote add
命令用来添加一个url的远程仓库,并将其命名为shortname。
git fetch
命令会访问远程仓库,并拉取所有你还没有的数据。执行完后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。
git fetch命令只会将数据下载到你的本地仓库–它并不会自动合并或修改你当前的工作。当准备好时你必须手动将其合并入你的工作。
git pull
命令会自动抓取后合并该远程分支到当前分支。
git push
命令用来将branch分支的内容推送到remote远程仓库中。
该命令只有当你有所克隆服务器的写入权限,并且之前没有人推送过时,这条命令才能生效。
当和其他人共同合作时,通常需要先抓取他们的工作,并将其合并进你的工作后才能推送。
git remote show
查看某一个远测仓库的更多信息。
git remote rename oldname newname
命令用来将oldname的远程仓库别名修改为newname。这个操作,同样会修改该远程仓库分支的名称
.
git remote remove name
命令用来移除别名为name的远程仓库。
Git可以给仓库历史中的某一个提交打上标签,以示重要。
git tag
命令用来列出已有的标签。
git tag -l
命令用来列出满足name规则名称的标签名称。
存储在Git数据库中的一个完整对象,它们是可以被校验的,其中包含打标签者的名字、电子邮件地址、日期时间和标签信息,并可以使用GPG签名验证。
git tag -a
命令用来添加一个tagname的标签,并指定了一条将会存储在标签中的信息comments。
git show
命令用来查看标签信息和与之对应的提交信息。
轻量标签像一个不会改变的分支–它只是某个特定提交的引用。
git tag
命令用来添加一个轻量标签。轻量标签本质上是将提交校验和存储到一个文件中,没有保存任何其他信息。
git tag -a
其中commit hash表示历史中提交的版本的hash值。
git push
命令表示将tagname共享到remote name仓库中。
git push
命令表示将多个tagname共享到remote name仓库中。
删除本地仓库上的标签。
git tag -d
命令用来删除本地仓库中tagname的标签。
git push
命令用来更新远程仓库的标签。
git push
命令同样用来删除远程仓库的标签。
就是用自定已的命令名称来代替一些git默认的命令。
git config --global alias.
命令用来表示用aliasname命令代替origin order命令。