Skip to content

Latest commit

 

History

History
128 lines (116 loc) · 5.44 KB

git.md

File metadata and controls

128 lines (116 loc) · 5.44 KB

Git设置签名

git需要用户设置一个签名

用户名: username
邮箱: email

注意邮箱不是真的邮箱地址 只是用来区分不同开发人员
这里与GitHub的账号密码没有关系
项目级别设置:

git config

系统全局级别设置:

git config --global

项目级别信息保存为在项目文件.git/config
全集级别信息保存为用户根目录 ~/.gitconfig
PS:

gif config --global user.name phk
gif config --global user.email [email protected]

Git命令

git签名配置

设置为仓库级别

git config

系统全局级别设置

git config --global

本地库初始化 (先切换到工作目录下):

git init

git项目提交操作

git status 查看当前项目状态
git add [filename] 追踪文件 添加到暂存区
git commit -m "commit message" [filename] 提交文件并写提交注释
message的格式:
type(scope):subject描述信息
type的类型:

  • feat:新功能
  • fix:修复bug
  • style:调整格式
  • refactor:代码重构
  • chore:项目构建

git rm --cached [filename] 把文件从暂存区中撤回

查看提交记录

每条记录对应一个index
git log 查看提交详细记录 多屏显示 和linux命令操作相同
git log --pretty=oneline 查看单行提交记录
git log --online 查看单行提交记录
git reflog HEAD@{移动到当前版本需要的步数}
版本前进后退
git reset --hard [索引值] 基于索引前进后退
git reset --hard HEAD^ 只能往后退 n个^退n个版本
git reset --hard HEAD~n 向后回退n个版本
reset 参数对比

  • --soft 仅仅移动本地库 HEAD指针
  • --mixed 移动本地库暂存区
  • --hard 移动 本地库 重置 暂存区工作区

版本差异

git diff [filename] 工作区暂存区对比
git diff [本地库历史版本] [filename] 工作区本地库对比 不带文件名 比较多个文件

分支操作

git branch -v 查看所有分支
git branch [name] 创建分支
git checkout [name] 切换分支
git checkout -b [name] 新建并切换到新的分支
git branch -d [name] 删除分支
git merge [name] 合并分支 先切换到master分支(被合并分支)
合并冲突 提示冲突进入 master|merging 状态
本地解决冲突
<<<<< HEAD 本分支修改的内容
======
>>>>>> 其他分支修改的内容
自己编辑完文件删除特殊符号后保存退出 再add commit(不能带文件名)

merge会一次性解决所有冲突
rebase一次解决一个冲突,需要多次执行rebase,解决完之后用git rebase --continue继续

远程库 GitHub

git remote -v 查看远程库信息 (fetch 用来取回)(push 用来推送)
git remote add origin URL 用origin代替URL
git clone URL 从URL上克隆远程库,使用clone不用事先git init ,默认只是克隆master分支
git clone -b 分支名 URL从URL中克隆对应的分支
git fetch 从远程库下载 但没有和本地库合并
git merge 合并本地库操作,会保留两个分支的提交,并生成一个新的提交
git rebase 合并分支,生成一个分支的提交副本,拼接到另一个分支的提交上
git pull fetch+merge操作
如果不是基于远程库的最新版所做修改
不能push 要先pull最新版
本地解决冲突commit push 和本地冲突处理相同

fork

远程库上可以fork别人的项目 自己做修改
Pull requests 请求源项目负责人将自己的修改合并到源项目中
源负责人审核merge pull requests 同意

linux 常用命令

  • cd [dirname] 切换目录 ~(表示用户根目录) 或 cd d:
  • ls 展示当前目录的文件
  • pwd 打印当前目录路径
  • cat [filename] 查看文件 cat .gifconfig
  • 多屏显示
    • 空格向下翻页
    • b向上翻页
    • q退出
  • ctrl+L 清屏

git 别名设置

git config --global alias.st status 用st来代替status 全局配置别名 git config --global pull.rebase true 设置默认选项的配置

git 标签操作

git tag -a v.01(表示版本) -m 'v0.1'(信息) 打标签,默认打在当前分支的当前版本 git tag -a v.01(表示版本) 12k9b -m 'v0.1'(信息) 打标签打在12k9b的这个版本 git push --tag 推送标签