git学习——记录每次更新到仓库

记录每次更新到仓库

工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪。已跟踪的文件是指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新,已修改或者已放入暂存区。而所有其他文件都属于未跟踪文件。它们既没有上次更新时的快照,也不在当前的暂存区域。初次克隆某个仓库时,工作目录中的所有文件都属于已跟踪文件,且状态为未修改。

在编辑过某些文件之后,Git 将这些文件标为已修改。我们逐步把这些修改过的文件放到暂存区域,直到最后一次性提交所有这些暂存起来的文件,如此重复。所以使用 Git 时的文件状态变化周期如图 2-1 所示。

检查文件状态:git status

跟踪新文件 暂存已修改文件 提交更新 :git add <filename>

忽略某些文件:可创建一个名为.gitignore的文件,然后列出要忽略的文件模式。如:

*.[oa]

此时忽略以.o 或者 .a结尾的文件.

文件 .gitignore 的格式规范如下:

  • 所有空行或者以注释符号  开头的行都会被 Git 忽略。
  • 可以使用标准的 glob 模式匹配。
  • 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
# 此为注释 – 将被 Git 忽略
# 忽略所有 .a 结尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目录下的所有文件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# ignore all .txt files in the doc/ directory
doc/**/*.txt

查看以修改文件内容

git status会列出文件的状态。

查看文件具体修改了一些什么内容用:git diff(显示还没暂存起来的改动)

看已经暂存起来的文件和上次提交时的快照之间的差异:git di ff --cached

改动后提交更新也用:首先用git status 查看各个文件的状态,在用git add 将改动后或者没有暂存的文件暂存 再使用git commit提交.

git commit 会启动文本编辑器(刚开始配置git时,

git config --global core.editor emacs

所指定的软件,一般是vim 或者emacs)以便输入本次提交说明,注意:提交说明是必须的。

跳过使用暂存区域:git commit -a Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤

移除文件

要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交。可以用 git rm 命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了。注意如果只是简单的从工作目录中删除文件,git status 会显示

“Changes not staged for commit” 部分(也就是未暂存清单)。

想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。换句话说,仅是从跟踪清单中删除。比如一些大型日志文件或者一堆 .a 编译文件,不小心纳入仓库后,要移除跟踪但不删除文件,以便稍后在 .gitignore 文件中补上,用 --cached 选项即可:

$ git rm --cached readme.txt

$ git rm log/\*.log==>删除所有 log/ 目录下扩展名为 .log 的文件

$ git rm \*~==>会递归删除当前目录及其子目录中所有 ~ 结尾的文件

移动文件

git mv <filename> <filepath>

时间: 2024-12-18 02:27:42

git学习——记录每次更新到仓库的相关文章

Arduino语言学习记录(持续更新)

几天前某宝买了一套,这几天没工夫.今天开始学学这个“玩具”. 1.Arduino的变量数据类型: 数据类型  数据类型 RAM 范围 void keyword N/A N/A boolean 1 byte 0 到 1(True 或 False) byte 1 byte 0 到 255 char 1 byte -128 到 127 unsigned char 1 byte 0 到 255 int 2 byte -32768 到 32767 unsigned int 2 byte 0 到 65535

我的git学习记录------------从廖雪峰老师网站的学习总结

这篇文章只用作自我学习,部分参考来自廖雪峰老师网站 mkdir 路径/文件名(d:/test)  创建文件夹 cd  路径/文件名(cd d:/test)  进入文件夹 pwd   显示当前所出位置的路径   确保全英路径(注意) cd 仓库(repository)文件路径       eg(cd d:/test) git init   初始化空的仓库,把这个目录变成git可以管理的仓库 编写一个readme.txt文件,内容如下: Git is a version control system

git学习(3)---远程仓库

一.目的 本文将介绍git远程库的操作,包括增加和删除远程库.查看远程库.获取和推送操作.新建和删除远程分支等内容. 本文涉及到的所有操作都是在Ubuntu 14.04环境中进行的,git版本是1.9.1. 二.增加和删除远程库 使用git remote add remote-name URL命令增加一个名为remote-name的远程库,地址为URL:使用git remote remove remote-name命令删除名为remote-name的远程库:使用git remote rename

Git学习笔记(持续更新)

强制同步为远程的代码 远程仓库回退了commit的情况下(第2条描述之情况),强制同步远程的代码到本地 #更新远程最新的所有代码,但是不merge或者rebase git fetch --all #直接reset到master,也就把刚才fetch的更新了 git reset --hard origin/master 回退版本 #回退本地版本git reset --hard <commit_id>#强制提交到服务器 git push origin HEAD --force 新建分支和远程分支

Git 学习记录

安装 1.  https://git-for-windows.github.io下载(网速慢的同学请移步国内镜像),然后按默认选项安装即可.安装完成后,在开始菜单里找到"Git"->"Git Bash",蹦出一个类似命令行窗口的东西,就说明Git安装成功! 2.  安装完成后,还需要最后一步设置,在命令行输入: $ git config --global user.name "Your Name" $ git config --global

git学习记录——分支管理和多人协作

在公司里难免会出现多个人一起工作,这就需要构建多个分支派发给多个人去干活 这就产生一个需求,分支管理 分支的创建,合并和删除 其他版本控制系统如SVN等都有分支管理,但是用过之后你会发现,这些版本控制系统创建和切换分支比蜗牛还慢,简直让人无法忍受,结果分支功能成了摆设,大家都不去用. 但Git的分支是与众不同的,无论创建.切换和删除分支,Git在1秒钟之内就能完成!无论你的版本库是1个文件还是1万个文件 $ git checkout -b dev Switched to a new branch

git学习记录

git config --list --global: 查看用户名和密码: ls -a: 显示当前目录下的所有文件: git reflog: 获取所有提交操作的版本号 git reset  --hard “版本号”: 退回到该版本号的状态 git status: 查看提交状态 rm "文件名": 删除文件 git add .: 添加所有修改 git commit -m "注释": 提交修改 touch "文件名": 创建文件 git branch

Git 学习(三)本地仓库操作——git add &amp; commit

Git 和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念.这在上章节已有提及,这章节具体说明什么是工作区及暂存区,以及如何使用本地git库的操作命令:重点 git add 及 git commit . 回顾上一章节版本库创建: 先将 D:盘下的 learngit 整个文件夹删除,然后创建空的 Git 版本库. 工作区(Working Directory) 和  版本库(Repository) 工作区即操作系统中看到的文件夹,如  d:/learngit ,目前工作区是空的. 工作区有一

Oracle相关的个人学习记录,不定期更新

存储过程基本语法 http://www.cnblogs.com/hero4china/articles/base_rule_oracle_procedure.html 存储过程基本写法 http://www.linuxidc.com/Linux/2013-11/93196.htm 存储过程简单例子 http://www.cnblogs.com/yueers/p/5710446.html 注意点: 存储结构创建 CREATE (OR REPLACE) PROCEDURE 存储结构名(需要输入的参数