Git(二)

今天是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
选项说明

-p

按补丁格式显示每个更新之间的差异。

--stat

显示每次更新的文件修改统计信息。

--shortstat

只显示 --stat 中最后的行数修改添加移除统计。

--name-only

仅在提交信息后显示已修改的文件清单。

--name-status

显示新增、修改、删除的文件清单。

--abbrev-commit

仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。

--relative-date

使用较短的相对时间显示(比如,“2 weeks ago”)。

--graph

显示 ASCII 图形表示的分支合并历史。

--pretty

使用其他格式显示历史提交信息。可用的选项包括 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/za/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

参考:https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E8%AE%B0%E5%BD%95%E6%AF%8F%E6%AC%A1%E6%9B%B4%E6%96%B0%E5%88%B0%E4%BB%93%E5%BA%93

 

转载于:https://my.oschina.net/zyldsy/blog/1543473

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值