今天是git学习的第二章。
一、基础命令
1.git status :查看所有文件状态
git status -s: 查看文件状态(相较于git status,输出更加简洁)
2.git add :跟踪文件 (git status 功能类似,但git add可以针对特定的目录或者文件),将已跟踪的文件放入暂存区。
3.git diff: 只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动。
4.git commit: 提交更新
git commit -a:将所有已跟踪的文件提交,跳过暂存区
5.git rm :从已跟踪文件中移除文件(不再纳入版本管理)
git rm -f:删除暂存区的文件
git rm -cached :将文件从git中删除,但磁盘上仍然存在
6.git mv:git中对文件进行改名操作
7.git log:查看提交历史
git log -p:查看每次提交的内容差异
git log -n:查看最近n次提交内容差异
git log --stat :每次提交简略统计信息。
git log --pretty = ? :指定不同格式展示提交历史(?->online 放在一行,还有short,full,fuller,format等)
format 示例:
$ git log --pretty=format:"%h - %an, %ar : %s"
ca82a6d - Scott Chacon, 6 years ago : changed the version number
085bb3b - Scott Chacon, 6 years ago : removed unnecessary test
a11bef0 - Scott Chacon, 6 years ago : first commit
format 格式:
选项说明
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 --date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明
git log
| 选项 | 说明 |
|---|---|
|
| 按补丁格式显示每个更新之间的差异。 |
|
| 显示每次更新的文件修改统计信息。 |
|
| 只显示 --stat 中最后的行数修改添加移除统计。 |
|
| 仅在提交信息后显示已修改的文件清单。 |
|
| 显示新增、修改、删除的文件清单。 |
|
| 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。 |
|
| 使用较短的相对时间显示(比如,“2 weeks ago”)。 |
|
| 显示 ASCII 图形表示的分支合并历史。 |
|
| 使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。 |
如果git需要忽略特定格式的文件,可以创建名为'.gitignore'的文件,列出需要忽略的文件模式。、
示例:
$ cat .gitignore
*.[oa]
*~
文件 .gitignore 的格式规范如下:
-
所有空行或者以
#开头的行都会被 Git 忽略。 -
可以使用标准的 glob 模式匹配。
-
匹配模式可以以(
/)开头防止递归。 -
匹配模式可以以(
/)结尾指定目录。 -
要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(
!)取反。
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。 星号(*)匹配零个或多个任意字符;[abc]匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。 使用两个星号(*) 表示匹配任意中间目录,比如`a/**/z` 可以匹配 a/z, a/b/z 或 `a/b/c/z`等。
8.git commit --amend:该命令首先会将暂存区的文件提交。如果自航次提交未做修改,那么快照会保持不变,只修改提交信息。
如果发现有某些修改没有暂存,执行下列操作:
$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend
上列操作把第二次提交替换第一次提交的结果。
9.git reset head <file>...:取消暂存
$ git reset HEAD CONTRIBUTING.md
Unstaged changes after reset:
M CONTRIBUTING.md
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
renamed: README.md -> README
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: CONTRIBUTING.md
10.git checkout -- <file>:撤销对文件的修改
$ git checkout -- CONTRIBUTING.md
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
renamed: README.md -> README
11.git remote:列出指定的每一个远程服务器简写
git remote -v: 显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL。
git remote add <shortname> <url>:添加新的远程Git仓库
git remote show [remote-name]:列出远程仓库的url与跟踪分支信息
git remote rename [name1] [name2]:将远程仓库名称由name1改为name2
git remote rm [remote-name]:移除远程仓库
12. git fetch <remote-name>:拉取远程仓库中有但是本地没有的数据(不会自动合并或修改当前工作,需要手动将其合并)
13. git pull:抓取合并远程分支到当前分支
14.git push [remote-name] [branch-name]:将本地分支推送至服务器
15.git tag : 列出已有的标签
git tag -a [tag-name] -m '*':创建附注标签,内容为*
git
489

被折叠的 条评论
为什么被折叠?



