Git高频命令(不断更新)

先说几个基本概念:

  • 工作区:就是你在电脑里能看到的目录;

  • 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库;

  • 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index);


一、仓库管理

1、初始化仓库:

Git 使用 git init 命令来初始化一个 Git 仓库,Git 的所有命令都需要在 Git 的仓库中运行,所以 git init 是使用 Git 的第一个命令;

git init             # 使用当前目录作为 Git 仓库
git init newrepo     # 指定目录作为Git仓库

#初始化后,会在 newrepo 目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。

2、克隆现有的git仓库到本地(最常用):

git clone <repo>                 # 克隆的当前目录
git clone <repo> <directory>     # 克隆到指定目录
git clone -b 分支名称 git地址    # 指定分支克隆(非常常用)

3、仓库配置:

#1 查看当前配置
[root@ck102 iot-mqtt]# git config --list
user.email=jiguiquan@haier.com    # 用户邮箱(提交代码时的用户信息)
user.name=jiguiquan               # 用户名(提交代码时的用户信息)
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=http://gitlab.cosmoplat.com/iot-datacoll/iot-mqtt.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.yanji.remote=origin
branch.yanji.merge=refs/heads/yanji

#2 编辑
git config -e            # 针对当前仓库
git config -e --global   # 针对系统上所有仓库(全局)

#3 设置提交代码时的用户信息
git config --global user.name "jiguiquan"
git config --global user.email "jiguiquan@haier.com"


二、分支管理:

1、查看分支:

# 查看本地分支(加*号的为当前分支)
[root@ck102 iot-mqtt]# git branch
* yanji

# 查看所有分支列表(加*号的为当前分支)
[root@ck102 iot-mqtt]# git branch -a
* yanji                    # 本地当前分支
  remotes/origin/master    # 远程分支
  remotes/origin/yanji     # 远程分支

2、创建删除分支:

#1 创建分支
[root@ck102 iot-mqtt]# git branch testing
[root@ck102 iot-mqtt]# git branch
  testing
* yanji


#2 删除本地分支
[root@ck102 iot-mqtt]# git branch -d testing
Deleted branch testing (was 8d98ce8).
[root@ck102 iot-mqtt]# git branch
* yanji

3、切换分支:

[root@ck102 iot-mqtt]# git branch
  testing
* yanji

# 切换分支到testing
[root@ck102 iot-mqtt]# git checkout testing
Switched to branch 'testing'

[root@ck102 iot-mqtt]# git branch
* testing
  yanji


三、代码/文件管理

1、查看本地文件变化 + :

[root@ck102 iot-mqtt]# git status
# On branch testing
# Changes not staged for commit:  修改的
#	modified:   pom.xml
#
# Untracked files: 新增的
#	aaa.txt
#	bbb.txt

2、放弃(工作区)中的修改:

#1 如果是新增文件,那么直接就删除即可
[root@ck102 iot-mqtt]# rm -rf aaa.txt 

#2 如果是被修改文件
[root@ck102 iot-mqtt]# git chechout pom.xml  # 放弃单个文件的修改
[root@ck102 iot-mqtt]# git checkout .        # 放弃所有文件的修改

#3 检查现在的状态
[root@ck102 iot-mqtt]# git status
# On branch testing
# Untracked files: 新增的文件
#	bbb.txt

3、添加文件修改到暂存区:

git add [file1] [file2] ... # 指定多个文件
git add [dir]               # 指定文件夹
git add .                   # 添加当前目录下的所有文件到暂存区
git add -A .                # 添加当前目录下的所有文件到暂存区(同上)
git add *.java              # 添加指定后缀的文件到暂存区(支持通配符)

[root@ck102 iot-mqtt]# git status
# On branch testing
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	new file:   bbb.txt
#	modified:   pom.xml
#

4、放弃(暂存区)中的修改(回到工作区):

# 单个文件/文件夹:
[root@ck102 iot-mqtt]# git reset HEAD pom.xml

# 所有文件/文件夹:
[root@ck102 iot-mqtt]# git reset HEAD .

5、提交暂存区中的修改 + 查看提交:

[root@ck102 iot-mqtt]# git commit -m "这是用于撤回的commit"

#1 查看刚刚commit,但是还没有push的提交
[root@ck102 iot-mqtt]# git cherry -v
+ 1cb3a9251abc0dd685a3c8f0231a9065a47e4964 这是用于撤回的commit

#2 指定条数,查看提交(不指定-n就是所有)
[root@ck102 iot-mqtt]# git log -n 2 yanji
commit 1cb3a9251abc0dd685a3c8f0231a9065a47e4964
Author: jiguiquan <jiguiquan@haier.com>
Date:   Wed Sep 6 17:49:09 2023 +0800

    这是用于撤回的commit

commit 8d98ce84a05cc448df8761d40c9c197e95fe31e0
Author: liyan <liyan.cosmo@haier.com>
Date:   Wed Aug 23 17:10:29 2023 +0800

    烟机代码更新

6、撤销commit后的修改:

# 撤销 commit, 但是保留修改在本地工作区中:
# 注意,这里的commit_id是想到回到的那个节点,不是想要撤销的那条提交(前6位即可)
git reset commit_id

# 撤销 commit, 同时本地删除该 commit 修改:
git reset --hard commit_id

7、推送提交到远程仓库:

git push

四、推送本地现有文件夹到远程仓库

首先在gitlab或者github,gitee等平台,创建一个仓库:

1、Git 全局设置:

git config --global user.name "吉桂权"
git config --global user.email "jiguiquan@163.com"

2、进入本地目录执行:

cd existing_git_repogit 
git init 
git add -A .
git commit -m "first commit"
git remote add origin https://gitee.com/jiguiquan/gostudy.git
git push -u origin "master"

五、同时管理多个remote,可向多个remote推送同一份代码

1、对remote的增删改查:

#1 查看remote列表
git remote

#2 添加一个新的remote
git remote add <name> <url>
## 例如:如果name = origin代表为默认的远程仓库
git remote add gitee https://gitee.com/zidancode/zd-test.git

#3 修改remote的url
git remote set-url <name> <NEW repo URL>
## 例如:
git remote set-url gitee https://gitee.com/zidancode/new-zd-test.git

#4 删除一个remote
git remote remove <name>
## 例如:
git remote remove gitee

2、指定 remote/分支 拉取代码:

git pull <remote_name> <branch_name>

3、指定 remote/分支 推送代码:

git push -u <remote_name> <branch_name>

# -u参数表示upstream,指定了本地分支和远程分支的关联关系
## 第一次推送时需要添加,之后就不需要了
### 最全的指令是:
git push -u origin master:master

#### 即:将本地的master分支代码推送到远程origin的master分支上

jiguiquan@163.com

文章作者信息...

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐