Git 的基本使用

基本的Linux命令

  • cd:改变目录

image-20240316221057315

  • cd .. :回退到上一个目录

image-20240316221000521

  • pwd :显示当前所在的目录路径

image-20240316221308077

  • ls(ll):列出当前目录中的所有文件,ll列出的内容更为详细

image-20240316221545520

  • touch:新建一个文件夹,如 touch test.txt 就会在当前目录下新建一个 test.txt 文件

image-20240316222027627

  • rm:删除一个文件,rm test.txt 就会把 test.txt 文件删除

image-20240316222220461

  • mkdir:新建一个目录(文件夹)

image-20240316222409878

  • rm -r :删除一个文件夹,如 rm -r pg 删除 pg 目录

image-20240316222650562

  • mv :移动文件,如 mv p.txt pg , 其中 p.txt 是我们要移动的文件,而 pg 是目标文件夹,并且要移动的文件要与目标文件夹在同一目录下

image-20240316223907726

  • reset:重新初始化终端/清屏

  • clear:清屏

  • history:查看命令历史

  • help:帮助

  • exit:退出

  • #:注释

Git 配置

  • git config -l :查看全部配置

image-20240316224836697

  • git config --system --list :查看系统配置
    • 配置文件路径:Git\etc\gitconfig

image-20240316225044579

  • git config --global --list:查看用户配置
    • 配置文件路径:C:\Users\Administrator(不同电脑名称不同)\.gitconfig

image-20240316225300218

  • git config --global user.name "PG_Code" #名称

    git config --global user.email 2512526656@qq.com #邮箱 :设置用户名和邮箱(用户标识,必要)

    • 这是安装 Git 后的首要操作,只需要设置一次

image-20240317095637652

Git 项目搭建

本地仓库搭建

搭建新的仓库

  • # 在当前目录新建一个 Git 仓库
    $ git init
    

克隆远程仓库

  • # 克隆一个项目和它的整个代码历史
    $ git clone [url]
    

Git 基本操作命令

文件四种状态

  • Untracked:未跟踪,此文件在文件夹中,但并没有加入到git库,不参与版本控制。通过 git add 状态变为 Staged
  • Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致。此类文件如果被修改,状态变为 Modified,如果使用 git rm 移出版本库,状态变为 Untracked
  • Modified:文件已修改,仅仅是修改,并没有进行其他操作。此类文件通过使用 git add 可进入暂存 Staged 状态,使用 git checkout 则丢弃修改过,返回到 Unmodify 状态,git checkout 即从库中取出文件,覆盖当前修改。
  • Staged:暂存状态。执行 git commit 则修改同步到库中,这时库中的文件和本地文件又变为一致,文件为 Unmodfiy 状态,执行 git reset HEAD filename 取消暂存,文件状态为 Modified

查看文件状态

# 查看指定文件状态
git status [filename]

# 查看所有文件状态
git status

提交代码

# 添加所有文件到暂存区
git add .
# 添加暂存区的内容到本地仓库
git commit -m "对提交内容的描述"
# 提交本地仓库到远程仓库
git push origin [分支名]

忽略文件

定义

  • 将不想要上传的文件在上传时忽略掉

操作

在主目录下建立 .gitignore 文件,此文件有如下规则:

  • 忽略文件中的空行或以 # 开始的行

  • 可以使用 Linux 通配符。例如:* 代表任意多个字符, 代表一个字符,[] 代表可选字符范围,如[abc],{} 代表可选的字符串,如{string1,string2,...}

  • 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略

  • 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略

  • 如果名称的末尾是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)

  • 示例;

    • # 为注释
      *.txt      # 忽略所有.txt 结尾文件,这样的话上传就不会被选中
      !lib.txt   # lib.txt 除外
      /temp      # 仅忽略项目根目录下的文件,不包括 temp
      build/     # 忽略build目录下的所有文件
      doc/*.txt  # 忽略 doc 目录下所有.txt 结尾文件
      

Git 分支

常用指令

# 列出所有本地分支
git branch

# 列出所有远程分支
git branch -r

# 新建一个分支,但依然停留在当前分支
git branch [branch_name]

# 新建一个分支,并切换到该分支
git checkout -b [branch_name]

# 合并指定分支到当前分支
git merge [branch]

# 删除分支
git branch -d [branch_name]

# 删除远程分支
git push origin --delete [branch_name]
git branch -dr [remote/branch]

注意:如果同一文件在合并分支时都被修改了则会引起冲突,解决办法就是修改冲突文件后重新提交!

本地仓库关联到远程仓库

远程仓库没有文件

第一步:
git init(初始化git仓库);

第二步:
git remote add 地址(设置remote地址);

第三步:
git add . (将所有变更提交到本地仓库);

第四步:
git commit -m '' (提交注释);

第五步:
git push(本地仓库推送到远程仓库)

远程仓库有文件

第一步:
git init(初始化git仓库);

第二步:
git remote add origin 地址(设置远程remote地址);

第三步:
git pull origin master(拉取远程仓库master的文件)

第四步:
git branch --set-upstream-to=origin/master master(将本地master设置为远程master分支)

第五步:
git add . (将所有变更提交到本地仓库);

第六步:
git commit -m '' (提交注释);