git使用札记(一)
配置
安装配置
Linux
sudo apt-get install git
或
sudo yum install git
Windows
http://git-scm.com/download/win
运行前配置
Git利用git config来对Git外观和行为进行配置。
- /etc/config:作用域是整个系统,–system,每一个用户和他们的仓库都由此配置
- ~/.gitconfig或~/.config/git/config:作用域是当前用户,–global
- 当前仓库的config文件.git/config:作用域就是当前仓库
作用域越广,优先级越低,./git/config > –global >> –system
用户信息
$ git config --global user.name ChangleZhang
$ git config --global user.email zhangchangle@example.com
$ git config --global cerdential.helper cache
设置密码缓存时间
文本编辑器
$ git config --global core.editor vim
这个语句可以讲vim作为默认的文本编辑器
配置SSH pubkey
sudo apt-get install ssh
安装SSH服务
ssh-keygen -t rsa -C "youemailaddress@server.com"
生成ssh key
cd /root/.ssh
进入SSH key存放目录
vim id_rsa.pub
查看公钥
将其添加到你所使用的托管git账号中
检查配置
$ git config --list
$ git config user.name
列举特定的配置信息
获取帮助
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
Quick-Start
现有目录初始化仓库
$ git init
克隆现有仓库
$ git clone https://github/ChangleZhang/xxx
HTTPS协议
git clone user@server:path/to/repo.git
SSH协议
查看当前文件状态
$ git status
untracked: Changes to be committed: Changes not staged for commit:
添加了新文件是untracked的,直接add新文件就是staged的,add相当于跟踪+staged。
修改后的文件是unstage的状态,add后就是staged的状态。
staged就是添加到了暂存区,commit过程中只会提交暂存区的文件。
需要将某个文件移除暂存区,就可以 git reset HEAD <file>
$ git status --s
或 $git status --short
简洁化status输出
A-新添加 M-修改但未放入缓存区 MM-修改并放入缓存区 ??-未跟踪文件
git diff
查看文件修改了哪些地方
git diff --cached
或 git diff --staged
查看已暂存下次将要提交的内容
忽略跟踪某些文件
$ cat .gitignore
或 $ vim .gitignore
*.[oa]
忽略所有以.o或者.a结尾的文件。
*~
忽略所有以波浪符号 ~ 结尾的文件。
- 所有空行或者以
#
开头的行都会被 Git 忽略。 - 可以使用标准的 glob 模式匹配。
- 匹配模式可以以(
/
)开头防止递归。 - 匹配模式可以以(
/
)结尾指定目录。 - 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(
!
)取反。
提交更新
$ git commit
启动文本编辑器书写说明并提交更新
$ git commit -a
跳过暂存区,全部更新所有文件
删除文件
$ git rm <file>
$ git rm --cached <file>
把git从仓库中删除或从缓存区中删除,但是本地工作目录不删除。
移动文件或者重命名
$ git mv file_from file_to
查看提交历史
$ 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(后跟指定格式)。 |
限制输出选项
选项 | 说明 |
---|---|
-(n) |
仅显示最近的 n 条提交 |
--since , --after |
仅显示指定时间之后的提交。 |
--until , --before |
仅显示指定时间之前的提交。 |
--author |
仅显示指定作者相关的提交。 |
--committer |
仅显示指定提交者相关的提交。 |
--grep |
仅显示含指定关键字的提交 |
-S |
仅显示添加或移除了某个关键字的提交 |
撤销操作
$ git commit --amend
撤销提交操作
撤销对文件的修改
$ git checkout --<file>
远程仓库
$ git remote
查看远程仓库
$ git remote -v
显示读写远程仓库需要的URL
$ git remote add <shortname> <url>
添加一个远程git仓库
$ git fetch [remote-name]
从远程仓库中抓取,但不会合并,需要手动合并
$ git push origin master
推送到远程仓库[remote name]
[branch name]
$ git remote rename pre_name post_name
Git远程仓库重命名
$ git remote rm name2remove
移除一个远程仓库
打标签
$ git tag
列举所有git标签
$ git tag -l 'v1.8.5*'
仅列举出1.8.5系列标签
$ git tag -a v1.4 -m 'my version 1.4'
打一个附注标签
$ git show v1.4
查看与v1.4标签相关的信息
$ git tag v1.4-lw
打一个轻量级标签,用git show查看不会有额外的信息
$ git tag -a v1.2 9fceb02
后期打标签,需要提供部分校验和或全部校验和
$ git push
不会把标签提交,$ git push origin --tages
指定后才会提交标签
$ git checkout -b version2 v2.0.0
在v2.0.0上创建一个version2分支
别名
$ git config --global alias.co checkout
这样就可以把co作为checkout的别名
$ git co branch_name
的方式就可以完成checkout的操作
$ git config --global alias.visual '!gitk'
这样可以用!来给非git子命令取别名
文章来源: zclhit.blog.csdn.net,作者:zclhit_,版权归原作者所有,如需转载,请联系作者。
原文链接:zclhit.blog.csdn.net/article/details/80741058
- 点赞
- 收藏
- 关注作者
评论(0)