Menu Close

Git常用的操作

1. git安装(略)

参见:Linux 下搭建 Git 并创建仓库

2. git配置级别

Git有3个级别的配置文件(local、global、system)

  • local:区域为本仓库
    本地级别的配置保存在当前仓库下面的.git\config文件内,通常 .git 文件夹是隐藏的。这里的配置仅对当前仓库有效,不影响其他的仓库。示例用法:

    ## 查看局部(当前目录)配置信息
    git config --list --local --show-origin
  • global: 当前用户的所有仓库
    全局级配置文件包含当前系统用户的拥有的仓库配置值,每个系统用户的全局级配置相互隔离。全局级别的配置默认保存在当前系统用户的主目录下的 .gitconfig(如:root用户的文件保存在/root/.gitconfig) 文件内。优先度比系统级高,可覆盖系统级的配置值。全局级的配置平时使用得比较多,比如设置账号和邮箱。示例用法:

    git config --list --global --show-origin
  • system: 本系统的所有用户
    系统级配置文件含有系统里每位用户及他们所拥有的仓库的配置值。其位置为git的安装目录下的/etc/gitconfig,系统配置对所有用户和所有 Git 仓库都有效。请注意,修改系统配置通常需要管理员权限。优先度最低,其配置值可被全局级配置和本地级配置的值覆盖。一般我们很少会使用系统级的配置。示例用法:

    git config --list --system --show-origin

优先级:local > global > system

3. git基本操作

Git 的工作就是创建和保存你项目的快照及与之后的快照进行对比。

Git 常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull

file

  • workspace:工作区
  • staging area:暂存区/缓存区
  • local repository:版本库或本地仓库
  • remote repository:远程仓库

2. 创建本地仓库

2.1. 在本地创建空目录

mkdir 项目路径(如:/dbData/myProject)

2.2. 初始化仓库

cd /dbData/myProject
git init
# 初始化仓库后,查看隐藏的.git目录
ls -lsa
ls .git

git目录下记录了项目需要设置的信息

file

2.3. 查看当前仓库的配置

git config --local --list

file

2.4. 设置当前仓库的用户名以及邮箱

有些时候我们的服务器可能要部署多个git仓库,不同git仓库的用户名以及密码都是不一样的,此时需要我们设置单个仓库的用户名以及密码。

git config user.name "userName"       //你的用户名
git config user.email "email address" //你的邮箱地址

file

2.5. 缓存当前仓库的用户名以及密码

让git记住账号和密码的方法是在git bash 中执行命令:

## 永久记住
git config credential.helper store
## 设置记住密码(默认有效期为15分钟)
git config credential.helper cache
## 设置记住密码(自定义有效期),以下命令代表每 3600 秒会让输入一次账号和密码
git config credential.helper 'cache --timeout=3600'

输入一次账号密码就可以保存,下次不再提示。

file

2.6. 清除当前仓库缓存的用户名和密码

git config --unset credential.helper

3. 本地仓库连接远程仓库

3.1. 从远程仓库克隆

可不用初始化git仓库,因为远程拉取就有!

git clone git@github.com:username/repositoryname.git (shh仓库地址,需要添加密钥)
git clone https://github.com/dreamChaser-lcc/xnsj.git (https仓库地址不需要密钥)

3.2. 手动建立关联

git remote add origin xxx //xxx为远程仓库地址如上
git remote -v  //查看是否添加成功
git fetch origin  //向远程仓库拉取内容
git branch -r //查看远程分支

origin就是代表远程仓库的相关数据,它既包含远程仓库url信息,又包括远程仓库在本地的缓存分支信息,缓存文件夹名称等等。

file

切换到main分支:
file

3.3. 取消本地仓库与远程仓库的关联

git remote remove origin

4. 本地分支操作

4.1. 新建本地分支

git branch [branch name]
## 示例
git branch devteam1

4.2. 切换到新分支

git checkout [branch name]
## 示例
git checkout devteam1

4.3. 创建分支同时也切换分支

git checkout -b [branch name]
## 示例
git checkout -b devteam2

file

假如远程分支已存在,可在创建本地分支时与远程分支关联

git checkout -b [本地分支名称] origin/[远程分支名称]

4.4. 查看本地所有分支

git branch

file

4.5. 查看本地当前分支

  • 方法一

    git branch --show-current

    该命令在Git版本2.22及以上版本中才可用。如果你使用的是较低版本的Git,可以尝试使用其他方法。

  • 方法二

    git symbolic-ref --short HEAD

    该命令用于显示HEAD指向的分支名。

  • 方法三

    git rev-parse --abbrev-ref HEAD

file

4.6. 删除本地分支

git branch -d [branch name]
## 示例
git branch -d devteam2

file

5. 远程分支操作

5.1. 拉取远程分支到本地仓库

  • git clone 命令获取

    git clone -b dev开发分支 http://xxx.xxx.xxx.xxx:9999/aggregate-payment/java-study.git
  • git fetch 命令获取

    git fetch

file
第一次拉取需要输入用户名与密码。

## 拉取前先清除远程分支的本地缓存
git fetch -p origin

5.2. 将本地分支推送到远程

git push [远程主机名] [本地分支名]:[远程分支名]
## 示例
git push origin devteam1:releaseteam1

file

5.3. 查看远程所有分支

git branch -r

file

5.4. 删除远程分支

  • 删除单个分支名称

    git push [远程仓库名称] --delete [分支名称]
    ## 示例
    git push origin --delete releaseteam1

    请注意,此命令将从远程仓库中永久删除指定的分支。在这里,[远程仓库名称]是指要删除分支的远程仓库的名称,[分支名称]是指要删除的分支的名称。

  • 删除多个远程分支

    git push [远程仓库名称] --delete [分支名称1]  [分支名称2] ...

file

5.5. 重命名远程分支

  • 步骤1:重命名远程分支对应的本地分支

    git branch -m [oldName] [newName]
    ## 示例
    git branch -m devteam1 feat_study_java
  • 步骤2:删除远程分支

    git push origin --delete [oldName]
    ## 示例
    git push origin --delete releaseteam1
  • 步骤3:推送新命名的本地分支

    git push origin [newName]
    ## 示例
    git push origin feat_study_java
  • 步骤4:把修改后的本地分支与远程分支关联

    git branch --set-upstream-to [origin/newName]
    ## 示例
    git branch --set-upstream-to origin/feat_study_java

file

当本地分支时与远程分支关联时就可以直接 git push 提交!!!

5.6. 更新远程分支的本地列表

当远程上的分支删除时,需要更新本地列表中远程分支。

git remote update origin --prune

file

6. git文件操作

6.1. 新建文件并提交

## 添加文件到暂存区
git add [file name]
## 查看仓库当前的状态,显示有变更的文件。
git status
## 将暂存区内容添加到本地仓库中
git commit -m "提交文件注释"

file

6.2. 推送本地分支到远程分支

git push 命令用于从将本地的分支版本上传到远程并合并。

git push [远程仓库名称] [本地分支名]:[远程分支名]
## 示例
git push origin feat_study_java:feat_study_java

如果本地分支名与远程分支名相同,则可以省略冒号:

git push [远程仓库名称] [本地分支名]
## 示例
git push origin feat_study_java

file

7. 拉取最新代码

git pull是在提交到远程仓库之前,先更新到最新版本代码,防止和别人代码产生冲突。

git pull origin [远程分支名]

file

附录

附录A. 相关联的文章

附录B. 参考