精简Git使用笔记

本文介绍了Git的基础知识,包括其工作原理、常用命令和注意事项。重点讲解了如何初始化repository、添加和提交文件、切换及合并分支、关联远程仓库以及解决冲突。还提到了Git的重要概念如Stage、HEAD和版本回退。此外,文章强调了Git对二进制文件的处理限制,并分享了版本管理和团队协作的最佳实践。
摘要由CSDN通过智能技术生成

Quick Review

Git 是分布式版本管理系统,可用于多人(设备)同步对同一项目进行编辑工作;每人本地都有一个完整的项目文件,Git服务器主要用于多人之间同步项目工作量,而不是存储。

Git 工作原理与流程:

remote
local
add
commit
remote add
pull
remote_Reop
repository
stage
.git
Loacl Folder
workfile

常用命令:

  • git remote add <remote_repository_name> <SSH_Address> 本地库关联Git服务器远程库
  • git add . 把当前目录下所有改动提交到Stage
  • git commit -m "注释" 提交到当前分支的本地Repository
  • git push [-u <remote_repository_name> master] 提交到远程库,-u用于首次指定默认提交到远程库(origin)的master分支
  • git pull 冲突解决,拉到本地对比修改后再push
  • git checkout -b <branch_name> 创建并切换到新分支(build的缩写)
  • git merge <branch_name> 将指定分支合并到当前分支

Git管理的是文件的(初始版本和)修改,而不是文件本身。文件在工作区,修改在repository。

Git能追踪所有文本文件内容变化,但是二进制文件(.docx也是)内容改动无法追踪,只能追踪二进制文件附加信息,如大小改变等

Git名词解析

  • 工作区:包含.git文件夹的目录及其子目录
  • 版本库(repository):.git文件夹

Git命令

git init # repository(git项目库)初始化

git add <readme.txt | dirname> # 把(被修改的)文件/目录(的所有文件)添加到repository的暂存区(Stage)

git commit <-m "注释"> # 把暂存区的内容提交到repository的当前分支

git status # 查看repository状态(提交状态、合并冲突状态等等)

git diff readme.txt # 查看文件修改记录(different的缩写)
>>> git diff HEAD -- readme.txt # 查看repository和工作区的文件区别

git log # 查看commit记录
>>> git log --graph --pretty=oneline --abbrev-commit # 查看合并日志

git reset --hard <HEAD^ | commit id> # 回退上一个版本(commit id写前4位即可,git自己会找)
>>> git reset HEAD readme.txt # 撤销Stage内容

git reflog # 每次执行命令记录(常用查看commit id)

git checkout -- readme.txt # 把工作区撤销到最近一次add/commit状态

git rm readme.txt # 删除repository中文件

git remote add <remote_repository_name> <SSH_Address> # 本地库与远程库关联(远程仓库名可自定义,一般用origin)
>>> git remote -v # 看远程库信息
>>> git remote rm origin # 删除远程库与本地库的绑定关系

git push [-u <remote_repository_name> <remote_branch_name>] # 提交远程repository(-u 指定默认使用分支,第一次提交时使用)
>>> git push origin <tag_name> # 推送指定标签到远程库
>>> git push origin --tags # 推送所有标签到远程库
>>> git push origin :refs/tags/v0.9 # 删除远程标签(本地先删除)

git checkout -b <branch_name> # 创建并切换到新分支(build的缩写)
>>> git checkout <branch_name> # 切换分支

git switch -c <branch_name>  # 创建并切换到新分支(create的缩写)
>>> git switch master # 切换为master分支

git branch # 查看处于哪个分支
>>> git branch -d <branch_name> # 删除分支,-D 强行删除
>>> git branch --set-upstream-to=origin/dev dev # 设置分支对应

git merge <branch_name> # 将指定分支合并到当前分支
>>> git merge --no-ff -m "merge with no-ff" dev # 禁止fast-forward模式

git stash # 暂存工作现场,即将Stage里的修改恢复到上一次commit
>>> git stash list # 查看保存的工作现场列表
>>> git stash apply [stash@{0}] # 恢复并且不删除stash,多个stash时可指定
>>> git stash pop # 恢复并删除stash

git cherry-pick 4c805e2 # 复制commit到当前分支,通过commit id(适合改bug)

git pull # 把远程对应分支拉到本地合并后再提交【需要分支对应,看git branch】

git tag <tag_name> [commite id]# 为最新的一次commit命名,也可为指定id的commit命名
>>> git tag -a v0.1 -m "version 0.1 released" 1094adb # 可添加注释
>>> git tag -d v0.1 # 删除标签

Git注意事项

  • git reset到上一个版本后,也可以重新回到新版本,只需要commit id
  • git merge后,冲突部分会直接在内容中出现<<<<<<<=======>>>>>>>标识,修改后再到当前分支add/commit即可完成合并。
  • 合并时,在没有冲突的情况下,git使用Fast-Forward模式合并,即直接把master分支拉倒dev进度,这会没有提交记录。可以禁止Fast-Forward模式git merge --no-ff -m "merge with no-ff" dev
  • 分支策略:master正式分支,dev开发分支,michal/bob个人分支
    廖雪峰推荐分支管理
  • HEAD,HEAD^,HEAD^^,HEAD~100 分别表示当前分支的当前版本,上一版本,上两个版本,上100个版本
  • 关于rebase
  • 官方gitignore文件: .gitignore

本文参考:https://www.liaoxuefeng.com/wiki/896043488029600

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值