git 操作文档

配置文件

用户配置

#  --local 当前项目
#  --global 全局配置
git config --global user.name "Your Name"  
git config --global user.email "email@example.com"

查看当前项目配置

git config -l

设置显示颜色使命令输出语法高亮

git config --global color.ui true

配置所在目录

# 仓库的Git配置文件存储位置
.git/config

# 全局配置文件
~/.gitconfig

文档解释

# 快进模式
Fast-forward

# 分支超前远程仓库一个提交
Your branch is ahead of 'origin/master' by 1 commit.

分支命名

类型命名
功能分支命名feature-vulcan
bug分支命名issue-101

入门

初始化git

git init

查看工作区状态

git status

提交本地库

# 添加到暂存区(stage),可同时add多个文件
git add readme.txt

# 提交到仓库
# -m 版本注释,改动记录,必须指定
git commit -m "wrote a readme file"

# 添加到暂存区并提交
git commit -a -m "wrote a readme file"

文件对比

Git跟踪并管理的是修改

# 工作区和暂存区的比较
git diff

# 暂存区和分支的比较 
git diff --cached

# 工作区和分支的比较
git diff HEAD 

# 指定文件,--为命令终止符,防止歧义,将filename认为是分支
git diff HEAD -- filename

# 指定文件
git diff filename

查看日志

commitid不是由1递增,而是由sha1计算所得

# 日志按时间降序
git log

# 查看最后一次提交
git log -1

# 友好显示
# --pretty=oneline 显示为一行
#版本号 注释
#0357c98735c7e1d2c309a5c4c039e09cf5d8b210 test
git log --pretty=oneline

# --abbrev-commit 缩写commit的id,能唯一标识commit
git log --abbrev-commit

# --graph 查看分支情况
git log --graph

|\
| * 0fa998b and simple  分支
* | 8d6ddf8 & simple    主分支
|/

回退或前进版本

Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向appendGPL

版本表示

  • HEAD 当前版本
  • HEAD^ 上一个版本
  • HEAD~100 上100个版本

版本操作

# 本地库回退到上一个版本
git reset --hard head^

# 前进到指定版本
# 指定版本id,只需要指定前面一部分,可以明确版本即可
git reset --hard 0357c98735c7e1d2c309a

# 历史命令记录,可以查看版本id
git reflog

# 还原到最近一次git commit或git add时的状态
# 没有--,就变成了“切换到另一个分支”的命令
# 主分支名字为master
git checkout -- readme.txt

# 撤销暂存区的修改
git reset HEAD readme.txt

删除文件

# 方法一
rm test.txt
git add test.txt
git commit -m 'remove test.txt'

# 方法二
# 删除文件并添加到stage区
git rm test.txt
git commit -m 'remove test.txt'

远程仓库

本地Git仓库和GitHub仓库之间的传输是通过SSH加密,所以需要手动生成ssh密钥

创建密钥

# -t 密钥类型
# -C 添加注释
ssh-keygen -t rsa -C "liuende501@gmail.com"
id_rsa.pub 为公钥

操作远程仓库

# origin 为默认远程仓库名
git remote add origin git@github.com:shichen501/learngit.git

# 删除远程仓库
git remote rm origin

# 同时关联两个远程仓库
git remote add github git@github.com:michaelliao/learngit.git
git remote add gitee git@gitee.com:liaoxuefeng/learngit.git

推送本地仓库到远程仓库

# -u 第一次本地内容推送到远程仓库,并建立联系
git push -u origin master

# 提交远程仓库命令
git push origin master

确认指纹信息

https://help.github.com/articles/github-s-ssh-key-fingerprints/

The authenticity of host 'github.com (192.30.255.112)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.

克隆远程仓库

# 默认以.git的无后缀文件名新建目录,也可以指定目录gitskills_dev
git clone git@github.com:shichen501/gitskills.git gitskills_dev

显示详细信息

github通过邮箱来识别身份

git remote -v

# fetch 表示抓取的远程库
origin  git@github.com:michaelliao/learngit.git (fetch)
# push 表示推送的远程库
origin  git@github.com:michaelliao/learngit.git (push)

远程分支操作

分支

创建分支

# 方法一
# 新建分支
git branch dev
# 切换分支
git checkout dev

# 方法二
# 创建并切换
git checkout -b dev

查看分支

git branch

删除分支

git branch -d dev

# 强制删除未合并分支
git branch -D feature-vulcan

合并指定分支到当前分支

# 同时合并工作区 版本库
git merge dev

# 合并冲突撤销
git merge --abort

合并冲突解决

# 1.修复冲突
# 2.提交
git commit -a -m 'fix'

禁用fast-forward

合并时禁用fast-forward,创建新的commit,可以在分支历史中查看分支信息,如果使用fast-forward,则会直接将分支合并到master,删除分支后,分支信息不可查

# 一旦指定了分支合并模式,则每次合并都使用相同的模式
git merge --no-ff -m "merge with no-ff" dev

远程仓库

# 推送其他分支
git push origin dev

# 创建远程的dev分支到本地
git checkout -b dev origin/dev

# 指定本地dev分支与远程origin/dev分支的链接
git branch --set-upstream-to origin/dev dev

# 抓取分支
git pull

现场存储

# 存储现场来修复bug
git stash

# 显示存储现场列表
git stash list

# 恢复现场
# 方法一
# 恢复现场 默认保存的最后一个即stash@{0}
git stash apply
# 删除现场
git stash drop

# 方法二
# 恢复并删除现场
git stash pop

# 指定恢复列表
git stash apply stash@{0}

# 清空现场列表
git stash clear

标签

创建标签

# 创建标签
git tag v1.0

# 创建标签
# 指定标签id
git tag v0.9 6224937

# 创建带有说明的tag,a为annotated
git tag -a v0.1 -m "version 0.1 released" 3628164

查看标签

# 标签列表
# 标签不是按时间顺序列出,而是按字母排序的
git tag

# 显示以字符串v1.开始的tag
git tag -l v1.*

# 显示标签详情
git show tagname

私钥签名标签

# 先指定config的gpg.program 为gpg2
git config --global gpg.program gpg2

远程仓库

# 推送标签到远程仓库
git push origin v1.0

# 推送所有标签到远程仓库
git push origin --tags

删除标签

# 删除标签
git tag -d v0.1

# 删除远程标签
# 删除本地标签
git tag -d v0.1
# 删除远程标签
git push origin :refs/tags/v0.1

获取标签代码

git checkout tagname

忽略文件

新建文件.gitignore,并添加到版本库里

强制添加忽略文件到版版本库

git add -f config.txt

检查忽略文件所在规则位置

git check-ignore -v config.txt

忽略规则

表达式说明
.libs/忽略指定目录下的所有文件
*.swf忽略指定后缀名的文件
ext/config*忽略指定字符串开始的文件
!app/logs/.gitkeep除!后面的文件

配置别名

git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.unstage 'reset HEAD'
git config --global alias.last 'log -1'
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

创建远程仓库

# 将公钥{id_rsa.pub}导入到文件
/home/git/.ssh/authorized_keys

# 新建空仓库(在当前用户主目录下,/home/git)
# 默认以.git结尾
sudo git init --bare sample.git

# 修改库权限
sudo chown -R git:git sample.git

# git 禁止远程登录/etc/passwd
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以回答这个问题。以下是一篇markdown格式的git操作文档: # Git操作文档 ## 1. 安装Git 在开始使用Git之前,需要先安装Git。可以在Git官网下载安装包,根据操作系统选择对应的版本进行安装。 ## 2. 创建本地仓库 在本地创建一个Git仓库,可以使用以下命令: ``` $ git init ``` ## 3. 添加文件到仓库 将需要管理的文件添加到Git仓库,可以使用以下命令: ``` $ git add <file> ``` ## 4. 提交文件到仓库 将添加的文件提交到Git仓库,可以使用以下命令: ``` $ git commit -m "commit message" ``` ## 5. 查看仓库状态 查看当前仓库的状态,可以使用以下命令: ``` $ git status ``` ## 6. 查看提交历史 查看提交历史,可以使用以下命令: ``` $ git log ``` ## 7. 撤销修改 如果对文件进行了修改,但是还没有提交到仓库,可以使用以下命令撤销修改: ``` $ git checkout -- <file> ``` ## 8. 回退版本 如果需要回退到之前的某个版本,可以使用以下命令: ``` $ git reset --hard <commit id> ``` ## 9. 分支管理 Git支持分支管理,可以使用以下命令创建分支: ``` $ git branch <branch name> ``` 切换分支可以使用以下命令: ``` $ git checkout <branch name> ``` ## 10. 远程仓库 Git支持远程仓库,可以使用以下命令将本地仓库与远程仓库关联: ``` $ git remote add origin <remote repository URL> ``` 将本地仓库的内容推送到远程仓库,可以使用以下命令: ``` $ git push -u origin master ``` ## 11. 克隆仓库 如果需要克隆一个已有的Git仓库,可以使用以下命令: ``` $ git clone <remote repository URL> ``` 以上就是Git操作文档的内容,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值