Git的基本使用

Git的基本使用

Git流程图

image-20220216113205628

命令:

 1. clone(克隆):从远程仓库中克隆代码到本地仓库
 1. chechout(检出):从本地仓库中检出一个仓库分支然后进行修订
 1. add(添加):在提交前检代码提交到暂存区
 1. fetch(抓取):从远程仓库抓取到本地仓库,不进行任何的合并操作,一般不用
 1. pull(拉取):从远程仓库拉到本地仓库,自动进行合并(merge),然后放到工作区,相当于fetch+merge
 1. push(推送):修改完成后,需要和团队共享代码时,将代码推送到远程仓库

Git基本配置

git config --global user.name "myname"

git config --global user.email "hello@qq.com"

为常用指令配置别名

  1. touch ~/.bashrc

  2. 在.bashrc输入

    1
    2
    3
    #用于输出git提交日志
    alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
    alias ll='ls -al'
  3. 执行source ~/.bashrc

获取本地仓库

git init

基础命令

image-20220216134734688

添加到工作区add

git add file|通配符

提交到本地仓库commit

git commit -m '注释'

查看修改状态status

git status

查看提交日志log

git log [option]

option:

    + --all 显示所有分支
    + --pretty=oneline 将提交信息显示为一行
    + --abbrev-commit使得输出commitId更简短
    + --graph以图的 形式显示

版本切换

git reset --hard commitID

git reflog查看已经删除的提交记录

分支

查看本地分支

git branch

创建本地分支

git branch 分支名
将某个分支合并到当前分支

切换分支

git checkout 分支名

git checkout -b 分支名 切换到一个不存在的分支(创建并切换)

合并分支

git merge 分支名称

删除分支

不能删除当前分支,只能删除其他分支

git branch -d b1删除分支时,需要各种检查

git branch -D b1不做检查,强制删除

Git远程仓库

配置SSH公钥

  • 生成SSH公钥

    • ssh-keygen -t rsa
    • 不断回车
  • Gitee设置账户公钥

    • cat ~/.ssh/id_rsa.pub获取公钥
    • 粘贴公钥
  • 验证

              `ssh -T git@gitee.com`
    

添加远程仓库

配置SSH公钥

ssh-keygen -t rsa不断回车,如果公钥已经存在,则会被覆盖

设置远程仓库公钥

cat ~/.ssh/id_rsa.pub 获取当前git公钥(本地)
在这里插入图片描述
ssh -T git@gitee.com验证是否配置成功

此操作时先初始化本地库,然后与创建的远程库对接

git remote add <远端名称><仓库路径>

  • 远端名称,默认是origin,可以自定义
  • 仓库路径,从远端服务器获取的URL

eg:git remote add origin git@gitee.com:czbk_zhang_meng/git_test.git

查看远端仓库

git remote

推送到远程仓库

git push [-f][--set-upstream][远端名称[本地分支名][:远端分支名]]

  • 如果远端分支名和本地分支名相同,则可以只用写本地分支名,注意,本地分支名要与远端分支名相同

      `git push origin master`
    
  • -f 强制覆盖

  • --set-upstream推送到远端的同时并建立和远端分支的关联关系

  • 如果当前分支已经和远端分支关联,则可省略分支名和远端名

image-20220216142428041

查看本地分支和远程分支的关联关系

git branch -vv

image-20220216142607801

从远程仓库克隆

git clone <仓库路径>[本地目录]

从远端仓库抓取和拉取

  • 抓取 git fetch [remote name][branch name]
    • 抓取是将仓库里的更新都抓到本地,不进行合并
    • 如果不指定分支名,则抓取所有分支
  • 拉取git pull [remote name][branch name]
    • 拉取是将远端仓库的修改拉倒本地并进行合并=fetch+merge
    • 如果不指定远端名和分支名,则抓取所有并更新当前分支

里的更新都抓到本地,不进行合并
+ 如果不指定分支名,则抓取所有分支

  • 拉取git pull [remote name][branch name]
    • 拉取是将远端仓库的修改拉倒本地并进行合并=fetch+merge
    • 如果不指定远端名和分支名,则抓取所有并更新当前分支
作者

步步为营

发布于

2024-03-23

更新于

2025-03-15

许可协议