git 使用

Git是什么

git 是最先进的分布式版本控制系统

版本库 又名仓库,你可以简单的理解为一个目录, 这个目录里所有的文件都被 git 给管理起来,每个文件的删除,修改, git 都能跟踪,并且在任何时候都能还原。

常用命令

初始化一个仓库

git init

把文件放进仓库里,只需要两步

git add reade.txt             # 添加文件
git commit -m "add one file"  # 提交文件

查看现在的状态

git status # 现在仓库处于什么状态
git diff  # 改动和之前的区别
git log   # 显示所有的提交记录

显示版本信息

git log --pretty=oneline   #显示提交记录

git reset --hard          #查看当前的版本信息

分支管理

git branch        # 所有的分支
git branch  -r  # 所有的远端分支
git checkout -b  debug_z   # 从当前分支的基础上,创建新的分支,并切换到新分支上

分支的合并

git merge  debug_z                 # 将 debug_z 分支合并到当前分支
git merge    --abort #取消合并   # 取消合并
git restore *  # 撤销提交
git reset --hard HEAD^  #撤销上一次提交
  • reset: 是使用移动头指针的方式,来回退到历史版本
  • revert: 是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容
  • restore: 使得在工作空间但是不在暂存区的文件撤销更改(内容恢复到没修改之前的状态)
  • git restore --staged: 是将暂存区的文件从暂存区撤出,但不会更改文件的内容

tag

git tag                            # 参看所有的 tag
git tag  | grep dev            # 查看所有分支中,dev 开头的
git tag  dev-admin-0.01   # 打 tag
git push  --tags            # 把 tag 推送推送到远端

git 相关的自定义命令

由于 git 命令使用非常频繁,所以在日常使用中,设置alias会使方便操作

alias gst='git status'
alias gad='git add .'
alias gcm='git commit -m'
alias gsw='git switch'
alias gp='git pull&&git push'
alias gck='git checkout'
alias gpt='git push --tag'
alias gbr='git branch'

git配置
配置路径 ~/.gitconfig

[init]
        defaultBranch = master
[user]
        name = zzz
        email = zzz.@mail.com
[core]
        editor = vim
        autocrlf = false
        excludesfile = ~/.config/gitignore_global.txt
[pager]
        branch = fasle

linux 下避免每次都输入用户名密码

1.常规方法
前提: 此方法只适合于使用 码云 的用户,github 的用户,或有略微的不同

1.先创建一个文件,文件名如下:

touch .git-credentials

2.使用 vim 打开后,记录如下命令,并保存

https://username:password@github.com  # github的用法
https://username:password@gitee.com   # 码云的用法

username:password 分别为你个人的用户名和密码,非固定字段;

3.将该文件永久保存

git config --global credential.helper store   # store为永久存储

建议方法
直接使用 key 验证的方式。使用私钥登录的方式,无需再输入用户名和密码。

git 合并提交

pick d42672c 添加了一行a
s ac45165 添加了一行b
s f61173f 添加了一行c

git merge 和 git rebase 两者的区别

区别和应用场景

git rebasegit merge 的最大区别,那就是: 两种合并所产生的log不一样

  • 融合个人代码到公共分支的时候用 git merge (自己的代码,调试完了,合到 master的时候)
  • 融合公共代码到个人分支的时候用 git rebase (开发过程中,master 在不断变化,需要经常把 master 合进来)

参考文献

https://dingjingmaster.github.io/2022/05/0002-rebase与merge的区别/

posted @ 2021-10-03 21:39  沧海一声笑rush  阅读(42)  评论(0编辑  收藏  举报