Git入门笔记

2022-11-15 21:04:18 浏览数 (1)

git 命令


  • git # 查看git常用命令
  • git help -a # 查看全部git子命令

git配置

  • 配置
代码语言:txt复制
- `git config --global user.name "IfanTsai"`
- `git config --global user.email "cyfxxd@foxmail.com"`
- `git config --global core.pager ''`显示配置信息

.gitignore

  • 强制添加.gitignore忽略的文件 git add -f <file name>
  • 查看.gitignore策略生效行号 git check-ignore -v <file name>

新建代码库

  • 在当前目录新建一个仓库 git init
  • 下载一个项目和它的整个历史代码 url格式: https://github.com/[userName]/reposName git clone [url]

添加删除文件

  • 添加指定文件到暂存区 git add [file1] [file2]
  • 一个文件多个提价 git add -p [file]
  • 删除工作区文件,并且将这次删除放入暂存区 git rm [file1] [file2]
  • 文件修改名字,并且将这次改名放入暂存区 git mv [file-origin] [file-renamed]

代码提交

  • 提交暂存区到仓库 git commit -m [message]
  • 直接从工作区提交到仓库, 前提该文件已经有仓库中的历史版本 git commit -a -m [message]
  • message编写格式 git commit message格式

查看信息

  • 显示变更信息 git status git status -sb # short and branch
  • 显示提交历史 git log git log --oneline git log <filename> git log --grep <msg> git log -n
  • 查看某个提交 git show <hash值> git show HEAD # 最近一次提交 git show HEAD^ # 最近的前一次 git show HEAD~1 # 最近的前一次 git show HEAD^^ # 再前一次
  • 查看变更
  • 逐行查看文件的修改历史 git blame <file name>
  • 从第100行到110行逐行查看文件修改历史 git blame -L 100, 110 <file name>

同步远程仓库

  • 查看远程仓库 git remote -v
  • 增加远程仓库,并命名 git remote add [shortname] [url] git remote add origin https://github.com/IfanTsai2/hello-git
  • 将本地的提交推送到远程仓库 git push [remote] [branch] git push origin master
  • 将远程仓库的提交拉下到本地 git pull [remote] [branch]

换行

  1. CR:carring return 回车, 光标到首行, ‘r’ return
  2. LF:line feed 换行, 光标下移一行, ‘n’ newline
  3. linux: n windows: rn mac os: r
  4. 提交时转换为LF,检出时转换为CRLF,默认设置, 不用修改 git cofig --global core.autocrlf true
  5. 允许提交包含混合换行符的文件 git config --global core.safecrlf false

别名

  • 以图形方式打印git提交日志 git log --pretty=format:'%h � | %s%d [%an]' --graph --date=short
  • 设置别名 git config --global alias.ci commit

凭证

  • 存储凭证 git config --global credential.helper store

协议

1.本地协议

2.Git协议 —— 缺乏受限机制, 一般与其他协议配合使用

3.HTTP协议 —— 通过输入用户名密码来授权对远程仓库的访问

4.SSH协议 (重点)

  • 克隆远程仓库
代码语言:txt复制
- 完整写法

回撤

  • 回撤暂存区内容到工作目录 git reset HEAD
  • 回撤提交到暂存区 git reset HEAD --soft
  • 回撤提交, 放弃变更 git reset HEAD --hard
  • 回撤远程仓库, -f 即 –force (强制推送) git push -f
  • 回撤上一次提交 git add . git commit --amend -m "message"
  • 变基操作, 改写历史提交 git rebase -i HEAD~3

clean

  • 列出打算清除的未跟踪的文件 git clean -n
  • 真正的删除 git clean -f
  • 连.gitignore中忽略的档案也清除 git clean -x -f

tag

  • 在当前提交上, 打标签foo git tag foo
  • 在当前提交上, 打标签foo, 并给message信息注释 git tag foo -m "message"
  • 在当前提交之前的第4个版本上, 打标签foo git tag foo HEAD~4
  • 列出所有标签 git tag
  • 删除foo标签 git tag -d foo
  • 把标签推送到远程仓库上 git push origin --tags # 推送所有标签 git push origin foo # 推送foo标签
  • 删除本地标签后删除远程仓库上的标签 git push origin :refs/tags/foo

分支

  • 创建分支foo git branch foo
  • 切换到分支foo git checkout foo
  • 创建分支并同时切换到foo, 一步做到 git checkout -b foo
  • 修改分支名字 git branch -m old_name new_name
  • 删除分支foo git branch -d foo # 未与其他分支合并会删除失败 git branch -D foo # 强制删除, 即使未与其他分支合并
  • 列出分支信息 git branch -v
  • 列出远程分支 git branch -r
  • 查看已合并的分支 git branch --merged git branch --no-merged
  • 列出远程合并的分支 git branch -r --merged
  • 取出远程foo分支 git checkout -t origin/foo
  • 删除远程分支 git push origin <space>:<remote branch> git fetch -p
  • 合并分支 git merge <branch name>
  • 合并分支, 拒绝fat forward, 产生合并commit git merge --no--ff

stash

  • 保存进度 git stash
  • 弹出进度 git stash pop
  • 查看stash列表 git stash list
  • 删除stash列表 git stash clear

git commit message格式

格式

<type>(<scope>): <subject>

// 空一行

<body>

// 空一行

<footer>

type

  • feat: 新功能
  • fix: 修补bug
  • docs: 文档
  • style: 格式 (不影响代码运行的变动)
  • refactor: 重构 (既不是新增功能, 也不是修改bug的代码变动)
  • test: 增加测试
  • chore: 构建过程或辅助工具的变动

参看阮一峰博客:Commit message 和 Change log 编写指南

本文作者: Ifan Tsai  (菜菜)

本文链接: https://cloud.tencent.com/developer/article/2164562

版权声明: 本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!

0 人点赞