【GIT】Git常用命令学习

简介: 【GIT】Git常用命令学习

Git常用命令学习

说明:<>表示占位符的说明,[]表示可选,/表示“或”

仓库操作

  1. 初始化创建一个本地仓库
git init
  1. 克隆远程仓库至本地
git clone <远程仓库地址> [仓库名称] #可以加上自定义仓库名称
  1. 配置仓库
git config user.name <用户名>
git config user.email <邮箱>
  1. 等价于在.git/config文件中添加:
[user]
  name = zcongfly
  email = zcongflying@qq.com
  1. 如果向对所有仓库进行全局配置
git --global config user.name <用户名>
git --global config user.email <邮箱>
  1. 此时修改的则是C盘下的用户根目录的.gitconfig文件。

文件操作

  1. 查看文件暂存区状态
git status
# 1.当前文件夹(工作区)中没有任何文件
On branch master  #在master分支
No commits yet    #目前没有提交状态
nothing to commit (create/copy files and use "git add" to track)  #没有文件可供提交
# 2.当前文件夹(工作区)中有文件但是还没有添加进暂存区,会显示这样的信息
On branch master
No commits yet
Untracked files:  #存在一个未追踪文件a.txt
  (use "git add <file>..." to include in what will be committed)
        a.txt
nothing added to commit but untracked files present (use "git add" to track)  #没有文件被提交但是有一个未追踪的文件
# 3.当前文件夹(工作区)中有文件且已经被添加进暂存区中
On branch master
No commits yet
Changes to be committed:  #有文件可供提交至存储区
  (use "git rm --cached <file>..." to unstage)
        new file:   a.txt
        
# 4.当前文件夹(工作区)已执行过一次或以上的提交命令,目前没有文件
On branch master 
nothing to commit, working tree clean
  1. 添加工作区文件至暂存区中
git add <文件名>/-A  # -A表示将工作区中的所有文件添加到暂存区中
  1. 注意,这里的文件名支持用通配符,如*.txt可以代表所有以txt结尾的文件,其余涉及到文件名的参数通常都支持通配符。
  2. 将暂存区的文件移动回工作区
git rm --cached <文件名>
  1. 将暂存区的文件提交至存储区
git commit -m `<提交说明信息>`
  1. 这里的-m表示message,指描述信息。
  2. 查看历史提交记录
git log [--oneline] # 加上--oneline表示只用一行显示日志信息,此时会省略掉作者和日期
commit 5b29c03e7def3e9f404d0572eef772ea7f3ce955
Author:lihaibo <15811009164@163.com> (HEAD -> master)
Date:Wed Mar 29 10:35:31 2023 +0800
  第二次新增文件
commit bdb56b85f63449b1b&4f1b0bec5621b6126b140d
Author:lihaibo <15811009164@163.com>
Date:Wed Mar 29 10:32:16 2023 +0800
  第一次新增文件
# 加上--oneline的输出结果
5b29c03 (HEAD -> master) 第二次新增文件
bdb56b8 第一次新增文件
  1. 误删除当前文件夹(工作区)中的文件,如果向找回误删除的文件,需要从存储区恢复误删除的文件到暂存区(只是删除了工作区中的文件,未影响到存储区的文件)
git restore <文件名>
  1. 注意,这种做法只有当执行删除操作尚未执行提交操作时,可以恢复误删除的文件,如果执行力提交操作则恢复不了。
  2. 退回上一版本
    如果误操作了文件并且已执行提交操作,可通过退回上一版本撤销操作
git log --oneline # 查看提交日志
5b29c03 (HEAD -> master) 第二次新增文件
bdb56b8 第一次新增文件
git reset --hard bdb56b8
HEAD is now at bdb56b8 第一次新增文件
git log --oneline # 查看提交日志
bdb56b8 (HEAD -> master) 第一次新增文件
  1. 恢复版本
    reset操作退回了上一版本,但同时也丢弃了当前版本的操作记录。如果既希望能恢复误操作的文件,又希望保留当前版本的操作该如何操作?
git revert <版本号>  # 如果想退回bdb56b8版本但同时希望保留5b29c03版本,填5b29c03
[master 5b29c03] Revert "第二次新增文件"
1 file changed, O insertions(+), 0 deletions(-)
create mode 100644 a. txt
git log --oneline
d7583ak (HEAD -> master) Revert "第二次新增文件"
5b29c03 第二次新增文件
bdb56b8 第一次新增文件
  1. 实际上,恢复版本相当于重新执行了一次新的提交操作。

分支操作

  1. 创建分支
git branch <分支名称>
  1. 注意,git中的分支时基于提交操作的,得先有提交操作再创建分支。
  2. 查看当前分支
git branch -v
* master af42a21 aaaa # 前面有*的表示当前分支
  user   af42a21 aaaa
  1. 切换分支
git checkout user
  1. 创建并切换分支
git checkout -b order
  1. 删除分支
git branch -d user
  1. 合并和冲突
    合并两个分支,需要先切换到master分支,再把其他分支合并到master。当两个分支中存在同名文件时,会发生文件冲突,需要人工进行处理。

master分支有a.txt、c.txt两个文件,order分支有b.txt、c.txt两个文件,其中c.txt的文件内容不相同。

git checkout master
git merge order
Auto-merging c.txt
CONFLICT (add/add): Merge conflict in c.txt
Automatic merge failed; fix conflicts and then commit the result.
  1. 此时,分支变为master|MERGING,表示正在合并,点开c.txt文件,可以看到两个同名文件的内容被整合到一个c.txt文件里并被标注了内容来源:
<<<<<<< HEAD
cccc  #原master分支中c.txt文件的内容
=======
3333  #原order分支中c.txt文件的内容
>>>>>>> order
  1. 将原有内容清空,替换成c.txt文件想要保留的内容,重新add和commit该文件:
git add c.txt
git commit -m cc33
  1. 提交成功后,可以发现分支由master|MERGING变回了master

标签操作

  1. 添加标签(别名)
    git log命令可以查看所有历史版本的提交操作,git log <版本号>可以查看特定版本号的提交操作:
git log
commit e392852bb03f543d29fa5d302c8fe530c48ae599
Author: zcongfly <zcongflying@qq.com>
Date:   Mon Jul 3 09:07:55 2023 +0800
    bbbb
commit af42a2165d21d09be8e3c6b5d82fe586ac40444d
Author: zcongfly <zcongflying@qq.com>
Date:   Mon Jul 3 09:00:29 2023 +0800
    aaaa
git log af42a2165d21d09be8e3c6b5d82fe586ac40444d
commit af42a2165d21d09be8e3c6b5d82fe586ac40444d
Author: zcongfly <zcongflying@qq.com>
Date:   Mon Jul 3 09:00:29 2023 +0800
    aaaa
  1. 但是,版本号太长了,不好记而且让人不明所以,因此可以给每一步提交操作产生的版本起一个别名,即打上一个标签,这样,便可以通过别名访问到特定的版本。
git tag <标签名> <版本号>
git log <标签名> #等价于git log <版本号>
git tag uptafile af42a2165d21d09be8e3c6b5d82fe586ac40444d
git log --oneline
e392852 bbbb
af42a21 (tag: uptafile) aaaa
  1. 删除标签
git tag -d <标签名>
  1. 除了用于标记每一步提交操作产生的版本的别名外,标签还可以直接被拿来创建分支,意为“对每一步操作创建一个分支”。
git checkout -b <要新建分支的名称> <标签名>
git checkout -b abranch uptafile
git log
commit af42a2165d21d09be8e3c6b5d82fe586ac40444d (HEAD -> abranch, tag: uptafile)
Author: zcongfly <zcongflying@qq.com>
Date:   Mon Jul 3 09:00:29 2023 +0800
    aaaa

远程仓库

从GitHub或Gitee等远程仓库克隆到二八年底的仓库本身跟远程仓库就有关联,可以从.git/config文件中查看具体情况:

[remote "origin"]
  url = git@gitee.com:zcongfly/git_test.git
  fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
  remote = origin
  merge = refs/heads/master

使用过程中,可以使用名称origin代替urlurl为克隆时从远程仓库中拷贝下来的地址,可以是https地址、ssh地址或者其他地址。

  1. 查看本地仓库关联的远程仓库
git remote -v
  1. 关联本地仓库与远程仓库
    如果本地仓库没有与远程仓库建立关联,可以通过如下命令进行关联
git remote add <要关联的远程仓库的名称> <远程仓库地址>
git remote add origin git@gitee.com:zcongfly/git_test.git
  1. 执行上面的命令后,.git/config文件中会被添加类似的配置信息。
  2. 删除本地仓库与远程仓库的关联
git remote remove <远程仓库的名称>
  1. 重命名远程仓库的名称
git remote rename <新的远程仓库的名称>
  1. 本地仓库的更新内容推送到远程仓库
git push <远程仓库的名称或url>
  1. 拉取远程仓库的更新内容
git pull <远程仓库的名称或url>


目录
相关文章
|
3月前
|
存储 开发工具 git
|
12天前
|
缓存 Java Shell
[Git]入门及其常用命令
本文介绍了 Git 的基本概念和常用命令,包括配置、分支管理、日志查看、版本回退等。特别讲解了如何部分拉取代码、暂存代码、删除日志等特殊需求的操作。通过实例和图解,帮助读者更好地理解和使用 Git。文章强调了 Git 的细节和注意事项,适合初学者和有一定基础的开发者参考。
33 1
[Git]入门及其常用命令
|
3月前
|
开发工具 git
【GIT 第二篇章】GIT常用命令
Git常用命令涵盖初始化、状态管理、提交、分支处理、远程操作等关键流程。`git init`启动本地仓库,`git clone`下载远程仓库。通过`git status`和`git diff`检查工作状态与差异。利用`git add`暂存文件,`git commit`保存更改。借助`git branch`、`git checkout`、`git merge`和`git rebase`管理分支。使用`git fetch`、`git pull`和`git push`同步远程仓库。通过`git reset`、`git revert`和`git checkout`实现版本回退。
66 0
|
1月前
|
开发工具 git
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
104 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
|
1月前
|
Shell 开发工具 git
git学习三:git使用:删除仓库,删除仓库内文件
通过GitHub的设置页面删除仓库,以及如何使用Git命令行删除仓库中的文件或文件夹。
136 1
git学习三:git使用:删除仓库,删除仓库内文件
|
15天前
|
开发工具 git 开发者
|
15天前
|
开发工具 git 开发者
提升Git效率:掌握这5个高级命令
【10月更文挑战第17天】
37 0
|
2月前
|
存储 Linux 开发工具
掌握 Git 命令:每个开发者的必备技能
无论团队项目还是个人开发,掌握 Git 命令都是必备技能。本文介绍 Git 的基本概念与命令,如初始化仓库 (`git init`)、添加文件 (`git add`)、提交更改 (`git commit`)、检出分支 (`git checkout`)、合并分支 (`git merge`) 等,还分享了高级技巧如查看差异 (`git diff`)、撤销提交 (`git revert`)、修复合并冲突 (`git mergetool`) 和使用别名简化命令 (`git config --global alias.ci commit`)。
|
2月前
|
机器学习/深度学习 Shell 开发工具
Python使用管道执行git命令报错|4-7
Python使用管道执行git命令报错|4-7
|
1月前
|
Unix Shell 网络安全
git学习六:(bug总结)git@github.com: Permission denied (publickey).等
本文是关于解决在使用Git和GitHub时遇到的“git@github.com: Permission denied (publickey)”错误的指南。文章提供了详细的步骤,包括确认SSH Agent运行状态、检查密钥配置、确保密钥匹配、验证仓库URL、检查权限和代理设置,以及配置SSH文件。这些步骤帮助用户诊断并解决SSH认证问题。
80 0