git使用札记(一)

举报
ChillRay 发表于 2020/12/30 00:09:23 2020/12/30
【摘要】 配置 安装配置 LinuxWindows 运行前配置 用户信息 文本编辑器配置SSH pubkey检查配置获取帮助 Quick-Start 现有目录初始化仓库克隆现有仓库查看当前文件状态忽略跟踪某些文件提交更新删除文件移动文件或者重命名 查看提交历史撤销操作 撤销对文件的修改 远程仓库打标签别名 配置 安装配置 Linux sudo a...

配置

安装配置

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 --cachedgit 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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。