Git的基本操作

Git的基本操作


配置


  • 常用:
    • name
    • email
      表示是追溯到具体那个用户对代码的修改
bash 复制代码
    # 配置全局用户名
    git config --global user.name "Your Name"       
    # 配置全局用户邮箱
    git config --global user.email       "email@example.com"
    # 配置全局颜色
    git config --global color.ui true       
    # 配置全局编辑器
    git config --global core.editor vim     
    # 配置全局合并工具
    git config --global merge.tool vimdiff      
    # 配置全局合并工具提示
    git config --global mergetool.prompt false      
    # 配置全局缓存凭证
    git config --global credential.helper cache     
    # 配置全局缓存时间
    git config --global credential.helper 'cache --timeout=3600'        
    # 配置全局推送默认方式
    git config --global push.default simple     

使用Git:


  • 查看当前仓库状态:
    * git status
  • 初始化仓库:
    * git init

文件状态

git中的文件有两种状态: 未跟踪已跟踪

--> 文件状态:

  • 未跟踪:表示文件未被git所管理,没有加入到git仓库中。
  • 已跟踪:表示文件已被git所管理,并且已经加入到git仓库中。
    未跟踪指文件没有被git所管理,已跟踪指文件已被
    git管理。已跟踪的文件又有三种状态: 未修改、修改和暂存

暂存,表示文件修改已经保存,但是尚未提交到git仓库。

未修改,表示磁盘中的文件和git仓库中文件相同,没有修改。

已修改,表示磁盘中文件已被修改,和git仓库中文件不同。

可以通过git status 来查看文件的状态

基本文件操作

  • 添加文件到git仓库:
    • git add <filename>
    • git add .
  • 提交文件到git仓库:
    • git commit -m "message"
  • 查看文件修改记录:
    • git log

刚刚添加到文件夹中的文件,是未跟踪的状态

未跟踪-->暂存 :将文件切换到在暂存状态:git add <filename> (只是暂存并未入库到git仓库中)
git add *:将所有已修改(未跟踪)的文件暂存

暂存-->未修改 :将文件切换到在未修改状态:git commit -m "注释" (将暂存文件入库)
git commit -a -m "注释":将所有已修改(未跟踪)的文件暂存并提交到git仓库中

未修改-->已修改 :直接修改文件内容会自动触发

  • 总结步骤:每当有文件修改后,需要提交仓库时:
  1. 先将文件添加到暂存区:git add <filename>
  2. 再将文件提交到仓库:git commit -m "注释"

查看刚刚一系列操作文件的修改日志:git log

常用文件命令

  1. 重置文件
bash 复制代码
    # 恢复文件至最近一次的提交
git restore <filename>

    # 取消暂存状态
git restore --staged <filename>
  1. 删除文件
bash 复制代码
    # 删除文件
git rm <filename>
    #强制删除
git rm <filename> -f    
  1. 移动文件
bash 复制代码
    # 移动文件
git mv <filename> <newfilename>

分支

git在存文件时,每一次代码代码的提交都会创建一个与之对应的节点,git就是通过一个一个的节点来记录代码的状态的,类似链表,每一个分支像指针一样,指向一个分支节点,并且可以访问到其之后的节点。节点会构成一个树状结构,树状结构就意味着这个树会存在分支,默认情况下仓库只有一个分支,命名为master,在使用gi时,可以创建多个分支,分支与分支之间相互独立,在一个分支上修改代码不会影响其他的分支。

bash 复制代码
    # 创建分支
git branch <branch name>
    # 切换分支
git switch <branch name>
    # 创建并切换分支
git switch -c <branch name>
    # 删除分支
git branch -d <branch name>
    # 查看分支
git branch
    # 合并分支
git merge <branch name>

c1 表示第一次提交,c2 是第二次,...每次提交都会在 "头节点"插入新的节点。

从c1开始,默认主分支master下创建一个新节点,又提交的三次到到c4节点,然后在master 节点创建新的分支update ,在update分支下,又提交两次到c6节点,重新回到master分支,再次创建新分支bug1,在bug1分支下又提交了两次,产生了两个新节点c7,c8

在开发过程中,我们经常需要创建分支,然后进行开发,开发完成后,再将分支合并到主分支中,这样就可以保证主分支的代码是最新的。

远程仓库(remote)


远程仓库是用来存储代码的,可以理解成是一个远程的版本库,可以用来存储代码,可以用来进行代码的版本控制,可以用来进行代码的备份,可以用来进行代码的共享。

将本地库上传git:

bash 复制代码
git remote add origin https://github.com/.....
# git remote add <remote name> <url>
git branch -M main
# 修改分支的名字的为main
git push -u origin main
# git push 将代码上传服务器上

将本地库上传gitee:

bash 复制代码
git remote add gitee https://gitee.com/ymhold/vue-course.git
git push -u gitee main

远程库的常用操作的命令

bash 复制代码
git remote                              # 列出当前的关联的远程库
git remote add <远程库名> <ur1>         # 关联远程仓库
git remote remove <远程库名>            # 除远程库
git push -u <远程库名> <本地分支名>          # 向远程库推送代码,并和当前分支关联
git push <远程库> <本地分支>:<远程分支> #将本地仓库分支推送到远程仓库的指定分支
git clone <ur1>                        # 从远程库下载代码


git push                               # 如果本地的版本低于远程库,push认是推不上去
git fetch                               # 要想推送成功,必须先确保本地库和远程库的版本一致,fetch它会从远程仓库下敕所有代码,
                                        #但是它不会将代码和当前分支自动合并,使用fetch拉取代码后,必须要手动对代码进行合并
git pull                               # 从服务器上拉取代码并自动合并

注意: 推送代码之前,一定要先从远程库中拉取最新的代码,为保证版本一致

tag标签


  • 当头指计没有执行某个分支的头部,这种状态我们称为分离头指(HEAD detached) ,分离头指针的状态下也可以操作操作代码,但是这些操作不会出现
    在任何的分支上,所以注意不要再分离头指针的状态下来操作仓库。
    如果非得要回到后边的节点对代码进行操作,则可以选择创建分支后再操作
bash 复制代码
git switch -c<分支名><提交id>
  • 可以为提交记录设置标签,设置标签以后,可以通过标签快速的识别出不同的开发节点:
    标签是用来标记代码版本,可以理解成是一个代码的快照,可以用来标记代码的版本,可以用来进行代码的版本控制,可以用来进行代码的备份,可以用来进行代码的共享。
bash 复制代码
git tag <tag name>                    # 给当前节点创建标签
git tag                                # 查看标签
git tag -a <tag name> -m "message"       # 创建带有说明的标签
git show <tag name>                      # 查看标签信息                      
git tag <tag name> <节点ID>             #为某一节点创建标签

git push 远程仓库 标签名  # 推送标签到远程仓库
git push 远程仓库 --tags  # 推送所有标签到远程仓库
git tag -d 标签名                # 删除本地标签
git push 远程仓库 --delete 标签名  # 删除远程标签

.gitignore (忽略监视)

.gitignore文件用来忽略不需要的文件,可以用来忽略一些不需要该文件夹里用git来监视管理的文件或文件夹,例如node_modules文件夹,或者一些配置文件,或者一些临时文件等等。
.gitignore文件中的每一行都表示一个需要忽略的文件或文件夹

bash 复制代码
# 忽略所有.a文件
*.a
# 但跟踪所有的lib.a,即便你在前面忽略了
!lib.a
# 只忽略当前目录下的TODO文件,而不忽略subdir/TODO
/TODO
# 忽略build/目录下的所有文件
build/
# 忽略doc/notes.txt,但不忽略doc/server/arch.txt
doc/*.txt
相关推荐
悟空20164 小时前
001、Git开发流程规范
git
Li小李同学Li4 小时前
git学习【持续更新中。。。】
git·学习·elasticsearch
晨春计6 小时前
【git】
android·linux·git
念幽6 小时前
Git常用命令
git
神技圈子7 小时前
【git系列】git中的那些迷惑的术语以及概念详解
git
benben0447 小时前
Photoshop使用方法大全
git
ou.cs8 小时前
git 删除远程分支的几种写法
git
atlanteep8 小时前
Linux·权限与工具-git与gdb
linux·git
胆小鬼~18 小时前
【DAY20240918】03教你轻松配置 Git 远程仓库并高效推送代码!
git
哆啦安全21 小时前
git常用命令(patch补丁和解决冲突)
git