git学习笔记

这篇博客详细介绍了Git的基本操作,包括版本管理、库的建立、用户信息配置和编辑器设置。还深入讨论了如何查看状态、忽略文件、进行文件操作、查看提交历史和撤销操作。此外,还涵盖了Git的远程操作和分支管理,是Git学习者的实用参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Git 基本操作

1. git clone <url or ssh>   从远端库克隆至本地
2. git pull –u origin       拉取在本地
3. git push –u origin       推至远端库
4. git init [dir]           初始化一个库
5. git add <-A or path>     添加文件
6. git rm <file>            删除文件
7. git commit –m '…'        提交并说明

Git 标签管理

命令git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id;
git tag -a <tagname> -m "blablabla..."可以指定标签信息;
git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;
命令git tag可以查看所有标签。
命令git push origin <tagname>可以推送一个本地标签;
命令git push origin --tags可以推送全部未推送过的本地标签;
命令git tag -d <tagname>可以删除一个本地标签;
命令git push origin :refs/tags/<tagname>可以删除一个远程标签。

Git 版本管理

git reset <commit_id or HEAD^>回滚到指定版本中
git log 查看操作的日志,从日志中可以看到commid_id
git log --pretty=oneline    这样看起来舒服点
git remote add origin git@github.com:PencilMR/mengran_test  

Git库的建立

git init --bare gitrepo.git     ##建立一个可以远程push的库    

配置用户信息

git config --global user.name "name"
git config --global user.email mail@example.com
git config --list       ##查看当前的配置信息

如果用了–global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他名字,只要去掉–global 选项重新配置即可,新的设定保存在当前项目的.git/config文件里。

修改git的默认编辑器

git config --global core.editor vim     ##默认为vim
git config --global merge.tool vimdiff  ##修改默认差异分析工具

查看当前的状态

git status

忽略库中的一些无用文件

$ cat .gitignore   #在当前目录里建立此文件,就会生效,忽略的规则写在里面
*.[oa]          #忽略所有以 .o 或 .a 结尾的文件
*~             #忽略所有以波浪符(~)结尾的文件

.gitignore 的格式规范如下:

  1. 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
  2. 可以使用标准的 glob 模式匹配。
  3. 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
  4. 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
    \# 此为注释 – 将被 Git 忽略
    \*.a # 忽略所有 .a 结尾的文件
    !lib.a # 但 lib.a 除外
    /TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
    build/ # 忽略 build/ 目录下的所有文件
    doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

文件差异比较

git diff        #当前文件和暂存区域快照之间的差异
git diff --cached   #已经暂存起来的文件和上次提交时的快照之间的差异
git diff --staged   #同上
git diff ab34f 12fdca #比较两个记录的差异

git的删除操作

git rm <file>           #删除文件(类似于git add <file>)
git rm --cached <file>  #只从git库中删除

文件的移动和重命名

git mv file_from file_to

查看提交的历史

git log     #查看所有的提交历史
git log --stat ##查看非详细改动
git log -p -2   #-p查看详细提交,-2查看最近两次提交
git log --pretty=oneline        #单行显示日志
git log --since=2.weeks     #两周内的提交

–pretty=format:”…” #可以定制输出日志

git log –pretty=format:”%h - %an, %ar : %s”

%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 commit --amend

eg:
$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend

上面只产生了一次提交。

git的远程操作

git clone <url>     #克隆远程仓库至本地
git remote -v   #查看所有的远程仓库
git remote add [shortname] [url]    #添加一个远程仓库
git fetch origin    #获取远程仓库origin有,而本地没有的内容
git push [remote-name] [branch-name]        #将本地推送至远程服务器上。
git remote show [remote-name] #查看远程仓库的详细信息
git remote rename pb paul   #远程仓库重命名

git的分支操作

git branch                  #查看所有的分支
git branch -v               #查看各分支最后一个commit信息
git branch <branch name>    #创建一个新的分支
git checkout <branch name>  #切换到这个分支
git checkouut -b <branch name> #创建并切换到这个分支
git merge <branch name> #将当前分支与目标分支合并
git branch --no-merged      #查看为合成的操作
git branch -d <branch name> #删除分支
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值