git 基础


1. 取得项目仓库

1.1从本地初始化

git init 初始化后会出现.git文件,Git所有数据和文件都保存在这个目录下。

1.2从远程仓库克隆

git clone git://github.com/schacon/grit.git mygrit
可以重命名工程名

2. 文件状态的变化周期

2.1git status 可以查看文件状态

$ git status On branch master Changes to be committed:   (use "git reset HEAD <file>..." to unstage)

modified:   readme.md

文件状态变化周期

2.2git add 命令:

  1. 开始跟踪新文件
  2. 把已跟踪文件放到暂存区
  3. 把冲突的文件标识为已解决

3. 忽略某些文件

创建.gitignore文件

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

• 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
• 可以使用标准的 glob 模式匹配。
• 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
• 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

3.2使用事例:

*.a # 忽略所有 .a 结尾的文件
!lib.a # 但 lib.a 除外
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt


4. 查看修改内容

git diff 对比工作目录修改文件变更内容,如果已暂存,需要使用git diff –staged命令,对比已暂存的文件和上次提交的快照。

$ git diff
warning: LF will be replaced by CRLF in readme.md.
The file will have its original line endings in your working directory.
diff –git a/readme.md b/readme.md
index 8178c76..6ed9b98 100644
— a/readme.md
+++ b/readme.md
@@ -1 +1,3 @@
+readme
+
readme


5. 提交更新

git commit 会调用默认文本编辑器,输入提交注释。

$ git commit
[master c196ed4] update
1 file changed, 2 insertions(+)

也可以使用 -m参数直接添加注释。

$ git commit -m “update”
[master 8e5bf9d] update
1 file changed, 1 insertion(+), 1 deletion(-)


6. 跳过暂存区域

使用-a 参数可以跳过 git add步骤

$ git commit -a
warning: LF will be replaced by CRLF in readme.md.
The file will have its original line endings in your working directory.
[master defa62a] update
1 file changed, 1 insertion(+)


7. 移除文件

git rm 从工作区域和暂存区删除文件
git rm –cached 只从暂存区删除文件
如果删除前修改过并且放入暂存区,则要用-f强制删除


8. 移动文件

git mv from_file to_file 删除原文件,创建新文件并且放入暂存区

Administrator@INDP42ZIY9KSKKH MINGW64 /e/git/gtf (master)
$ ll
total 2
-rw-r–r– 1 Administrator 197121 4 二月 1 21:25 gtf.txt
-rw-r–r– 1 Administrator 197121 26 二月 1 22:17 readme.md

Administrator@INDP42ZIY9KSKKH MINGW64 /e/git/gtf (master)
$ git mv gtf.txt gtf.md

Administrator@INDP42ZIY9KSKKH MINGW64 /e/git/gtf (master)
$ ll
total 2
-rw-r–r– 1 Administrator 197121 4 二月 1 21:25 gtf.md
-rw-r–r– 1 Administrator 197121 26 二月 1 22:17 readme.md


9. 查看提交历史

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 log
commit defa62a0eaaa3247dadb8f348287541c518be4fd (HEAD -> master)
Author: guo tengfei guotengfei19880205@163.com
Date: Thu Feb 1 22:18:01 2018 +0800

update

commit 8e5bf9d221aafccd873752683bd67f78cbb45934
Author: guo tengfei guotengfei19880205@163.com
Date: Thu Feb 1 22:16:01 2018 +0800

update

commit c196ed482b8035d70b95803fd67aaab0b763e8ac
Author: guo tengfei guotengfei19880205@163.com
Date: Thu Feb 1 22:12:55 2018 +0800

update

commit d372dcd01327473fe613ad3c2086ba633225af3d
Author: guo tengfei guotengfei19880205@163.com
Date: Thu Feb 1 21:27:03 2018 +0800

add

-p显式每次提交的差异,-2显式最近两次日志

$ git log -p -2
commit defa62a0eaaa3247dadb8f348287541c518be4fd (HEAD -> master)
Author: guo tengfei guotengfei19880205@163.com
Date: Thu Feb 1 22:18:01 2018 +0800

update

diff –git a/readme.md b/readme.md
index edb260d..6636280 100644
— a/readme.md
+++ b/readme.md
@@ -1,3 +1,4 @@
readme
aaaa
readme
+bbbbb

commit 8e5bf9d221aafccd873752683bd67f78cbb45934
Author: guo tengfei guotengfei19880205@163.com
Date: Thu Feb 1 22:16:01 2018 +0800

update

diff –git a/readme.md b/readme.md
index 6ed9b98..edb260d 100644
— a/readme.md
+++ b/readme.md
@@ -1,3 +1,3 @@
…….


git log –stat 只显示修改的文件

$ git log –pretty=oneline
defa62a0eaaa3247dadb8f348287541c518be4fd (HEAD -> master) update
8e5bf9d221aafccd873752683bd67f78cbb45934 update
c196ed482b8035d70b95803fd67aaab0b763e8ac update
d372dcd01327473fe613ad3c2086ba633225af3d add


$ git log –pretty=format:”%h - %an, %ar : %s” 修改显示日志格式
defa62a - guo tengfei, 24 hours ago : update
8e5bf9d - guo tengfei, 24 hours ago : update
c196ed4 - guo tengfei, 24 hours ago : update
d372dcd - guo tengfei, 24 hours ago : add


选项 说明
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 -date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明


git log –pretty=format:”%h %s” –graph 展示每次提交所在分支的分化衍合情况.
日志还可以通过时间进行限制:

选项 说明
-(n) 仅显示最近的 n 条提交
–since, –after 仅显示指定时间之后的提交。
–until, –before 仅显示指定时间之前的提交。
–author 仅显示指定作者相关的提交。
–committer 仅显示指定提交者相关的提交。


10. 撤销操作

撤销上次提交动作,可以用git commit –amend,即重新提交。
git reset HEAD 撤销暂存的文件
git checkout – 撤销工作区域文件的修改
注意,撤销有风险,操作需谨慎。


11. git命令别名

$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status
$ git config --global alias.unstage 'reset HEAD --'
$ git config --global alias.last 'log -1 HEAD'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值