安装过程省略...
至于安装目录的有关功能, 略过...
关于初次使用的关键配置命令:
1, 配置基本信息, 该信息将保存在该用户目录下的. gitconfig 文件内
配置用户信息
$ git config --global user.name "xxx"
$ git config --global user.email xxx@example.com
配置文本编辑器与差异分析工具
$ git config --global core.editor xxx
$ git config --global merge.tool xxx
查看该配置文件所有配置信息
$ git config global --list
如果用了 --global 选项, 那么更改的配置文件就是位于你用户主目录下的那个, 以后你所有的项目都会默认使用这里配置的用户信息. 如果要在某个特定的项目中使用其他名字或者电邮, 只要去掉 --global 选项重新配置即可, 新的设定保存在当前项目的 .git/config 文件里.
2, 关于仓库的创建, 克隆与更新
在工作目录初始化新仓库
$ git init
从已有仓库克隆项目
$ git clone [url] [newname]
检查当前文件状态
$ git status
跟踪新文件(纳入版本控制)
$ git add xxx
(这是个多功能命令, 根据目标文件的状态不同, 此命令的效果也不同:
可以用它开始跟踪新文件, 或者把已跟踪的文件放到暂存区, 还能
用于合并时把有冲突的文件标记为已解决状态等)
提交更新
$ git commit
$ git commit -a (可以跳过 git add 步骤)
$ git commit -m "xxx"
3, 对文件的操作
忽略某些文件(我们需要新建一个. gitignore 文件, 列出要忽略的文件模式), 规格如下:
所有空行或者以注释符号 # 开头的行都会被 Git 忽略.
可以使用标准的 glob 模式匹配.
匹配模式最后跟反斜杠 (/) 说明要忽略的是目录.
要忽略指定模式以外的文件或目录, 可以在模式前加上惊叹号 (!) 取反.
举个栗子:
- # 忽略所有 .a 结尾的文件
- *.a
- # 但 lib.a 除外
- !lib.a
- # 仅仅忽略项目根目录下的 TODO 文件, 不包括 subdir/TODO
- /TODO
- # 忽略 build/ 目录下的所有文件
- build/
- # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
- doc/*.txt
- # 忽略 doc/ 目录下所有扩展名为 txt 的文件
- doc/**/*.txt
我们查看哪些文件被修改过可以通过 git status 来查看, 但是如果查看具体修改了哪些可以:
查看哪些地方做了怎样的修改
$ git diff
查看已经暂存起来的文件和上次提交时的快照之间的差异
$ git diff --cached
注意, 单单 git diff 不过是显示还没有暂存起来的改动, 而不是这次工作和上次提交之间的差异
对文件的移除, 分两种情况:
如果只是对该文件取消跟踪
$ git rm --cached xxx
$ git rm -f --cached xxx (强制)
$ git rm -r --cached xxx (用于目录, 递归)
如果顺便删除此文件
$ git rm xxx
$ git rm -f xxx (强制)
$ git rm -r xxx (用于目录, 递归)
也可以使用 glob 模式, 如
$ git rm log/\*.log
文件的重命名(与通常的移动命令一致, 但是在 Git 里移动没有意义)
对文件改名
$ git mv [file_old_name] [file_new_name]
其实, 运行 git mv 就相当于运行了下面三条命令:
$ mv README.txt README
$ git rm README.txt
$ git add README
4, 查看更新历史
查看更新历史记录
$ git log
常用 -p 选项展开显示每次提交的内容差异, 用 -2 则仅显示最近的两次更新
$ git log -p -2
进行单词层面的对比, 比行层面的对比
$ git log -U1 --word-diff
(在此之中新增加的单词被 {+ +} 括起来, 被删除的单词被 [- -] 括起来.
在进行单词层面的对比的时候, 使用 U1 的意思是上下文 ( context ) 行数从
默认的 3 行, 减为 1 行.)
仅显示简要的增改行数统计
$ git log --stat
指定使用完全不同于默认格式的方式展示提交历史
$ git log --pretty=[oneline]|[short]|[full]|[fuller]
仅显示最近的 n 条提交
$ git log -(n)
仅显示指定时间之后的提交
$ git log [--since] | [--after]
仅显示指定时间之前的提交.
$ git log [--until] | [--before]
仅显示指定作者相关的提交
$ git log [--author]
仅显示指定提交者相关的提交
$ git log [--committer]
5, 撤回, 修改, 取消操作
修改最后一次提交(撤回提交)
$ git commit --amend
取消暂存的文件
$ git reset HEAD xxx
取消对文件的修改
$ git checkout -- xxx
6, 远程仓库的使用
查看当前的配置有哪些远程仓库
$ git remote
显示对应的克隆地址
$ git remote -v
要添加一个新的远程仓库, 可以指定一个简单的名字, 以便将来引用
$ git remote add [shortname] [url]
我们可以在项目里用字符串 pb 指代对应的仓库地址.
从远程仓库抓取数据到本地
$ git fetch [remote-name] | pb
推送数据到远程仓库
$ git push origin master
查看远程仓库信息
$ git remote show origin
修改某个远程仓库在本地的简称
$ git remote rename [oldname] [newname]
移除对应的远端仓库
$ git remote rm [name]
7, 对标签的管理
Git 使用的标签有两种类型: 轻量级的 (lightweight) 和含附注的(annotated). 轻量级标签就像是个不会变化的分支, 实际上它就是个指向特定提交对象的引用. 而含附注标签, 实际上是存储在仓库中的一个独立对象, 它有自身的校验和信息, 包含着标签的名字, 电子邮件地址和日期, 以及标签说明, 标签本身也允许使用 GNU Privacy Guard (GPG) 来签署或验证. 一般我们都建议使用含附注型的标签, 以便保留相关信息; 当然, 如果只是临时性加注标签, 或者不需要旁注额外信息, 用轻量级标签也没问题.
列出现有标签
$ git tag
创建一个轻量级的标签
$ git tag v1.0
创建一个含附注类型的标签
$ git tag -a v1.0 -m 'xxx'
查看相应标签的版本信息
$ git show v1.0
如果有自己的私钥, 可以用 GPG 来签署标签
$ git tag -s v1.0 -m 'xxx'
在后期对早先的某次提交加注标签
只要在打标签的时候跟上对应提交对象的校验和 (或前几位字符) 即可
$ git tag -a v1.0 xxx
默认情况下, git push 并不会把标签传送到远端服务器上运行
$ git push origin v1.0
一次推送所有本地新增的标签
$ git push origin --tags
以上命令参考自 Git 官网, 放心使用.
个人邮箱 zuoyuip@qq.com
后续更新分支说明, 欢迎指出不足.
"人得自己成全自个儿".
来源: https://www.cnblogs.com/1214804270hacker/p/8832325.html