git安装与常用命令

  • ls/ll 查看当前目录(ll可查看隐藏文件【以.开头的文件】,ls则不可以)
  • cat 查看文件内容
  • touch 创建文件
  • vi vi编辑器

git gui:git提供的图形界面工具

git bash:git提供的命令行工具

当安装git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次git提交都会使用改用户的信息

基本配置

  1. 打开git bash

  2. 设置用户信息
    git config --global user.name "username"
    git config --global user.email "abc@123.com"

    查看配置信息

    git config --global user.name

    git config --global user.email

获取本地仓库

git init会生成一个.git文件夹

基础操作指令

git 工作区内新创建的或者修改已有文件需要将该文件通过git add命令存入暂存区,暂存区的文件通过git commit命令将文件提交到仓库

image-20250120113906479

查看文件的状态git status

git add .可直接将工作区中的修改的所有文件放入暂存区

对工作区中的test01.txt文件进行提交。

  1. 将test01.txt放入暂存区git add .
  2. 将暂存区文件提交到仓库git commit -m "add file01"后边的“add file01”只是提交标识方便以后查找
  3. 提交完毕可以再次通过git status指令查看当前 Git 仓库的状态,它能显示文件的更改情况、哪些文件已经被暂存(staged)或者哪些文件还没有被暂存,帮助你了解当前的工作区和暂存区的状态。
  4. 通过git log命令查看提交历史

版本回退

git reset --hard commitIDcommitID可以使用git log --onelinegit log命令查看

git log --oneline是简洁输出

查看已删除的记录git reflog,这个指令可以查看已经删除的提交记录

添加文件至忽略列表

若有些文件不需要纳入git的管理,也不希望他们总是出现在未跟踪文件列表,通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等,在这种情况下,我们可以再工作目录中创建一个名为.gitignore的文件(文件名称固定),列出要忽略的文件模式(比如不想要将.a后缀的文件纳入git的管理,可在.gitignore文件中输入*.a

1
2
3
4
5
6
7
8
9
10
11
12
#no .a files
*.a
#but do track lib.a,even though you're ignoring .a files above
!lib.a
#only ignore the TODO file in the current directory,not subdir/TODO
/TODO
#ignore all files in the build/ directory
build/
#ignore doc/notes.txt,but not doc/server/arch.txt
doc/*.txt
#ignore all .pdf files in the doc/ directory
doc/**/*.pdf

分支

git branch查看分支

git branch 分支名创建新的分支

规定当前工作区只能属于其中一个分支,有多个分支之后只能对一个分支进行修改,即当前分支

git checkout dev01切换到dev01分支

git checkout -b dev01创建并切换到dev01

git merge dev01合并dev01分支到当前分支

删除分支

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

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

解决冲突

当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决冲突,解决冲突步骤如下:

  1. 处理文件中冲突的地方
  2. 将解决完冲突的文件加入暂存区(add)
  3. 提交到仓库(commit)

image-20250203125021156

配置ssh公钥

  • 生成ssh公钥
    • ssh-keygen -t rsa
    • 不断回车(如果公钥已经存在,则自动覆盖)
  • Gitee设置账户共公钥
    • 获取公钥
      • cat ~/.ssh/id_rsa.pub
  • 验证是否配置成功
    • ssh -T git@gitee.com

操作远程仓库

添加远程仓库

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

  • 命令:`git remote add <远程名称> <仓库路径>
    • 远程名称,默认是origin,取决于远程服务器设置
    • 仓库路径,从远端服务器获取此URL
    • 例如:`git remote add origin git@gitee.com:czbk_zhang_meng/git_test.git

查看远程仓库

  • 命令:git remote

推送到远程仓库

  • 命令:git push [-f] [--set-upstream] [远端名称[本地分支名][:远端分支名]]
    • 如果远程分支名和本地分支名相同,则可以只写本地分支
      • git push origin master(意为将本地master分支合并到远程origin仓库的master分支)
      • -f 表示强制覆盖
      • --set-upstream推送到远端的同时并且建立起和远端分支的关联关系。
        • git push --set-upstream origin master
      • 如果当前分支已经和远端分支关联,则可以省略分支名和远端名。
        • git push 将master分支推送到已关联的远端分支

本地分支与远程分支的关联关系

  • 查看关联关系我们可以使用git branch -vv命令

从远程仓库克隆

如果已经有一个远程仓库,我们可以直接clone到本地

  • 命令:`git clone <仓库路径> [本地目录]
    • 本地目录可以省略,会自动生成一个目录

image-20250203140939712

从远程仓库抓取和拉取

远程分支和本地分支一样,我们可以进行merge操作,只是需要先把远端仓库里的更新都下载到本地,再进行操作。

  • 抓取命令:git fetch [remote name] [branch name]
    • 抓取指令就是将仓库里的更新都抓取到本地,不会进行合并
    • 如果不指定远端名称和分支名,则抓取所有分支。
  • 拉取命令:git pull [remote name] [branch name]
    • 拉取指令就是将远端仓库的修改拉倒本地并自动进行合并,等同于fetch+merge
    • 如果不指定远端名称和分支名,则抓取所有并更新当前分支。