git第三章——git基础使用实操

Bertha 。 2023-10-08 23:28 164阅读 0赞

git命令

  1. git status # 查看git仓库状态
  2. # -----------------------------------------------------
  3. git init # 初始化本地仓库
  4. # -----------------------------------------------------
  5. git add <file> # 提交单个指定文件到暂存区
  6. git add . # 提交所有文件到暂存区
  7. # -----------------------------------------------------
  8. git rm -cached <file> # 表示将已提交的文件从暂存区中删除,文件重新变成未追踪的状态。文件还在工作区
  9. # -----------------------------------------------------
  10. git commit -m "first git file" gitfile.txt # 将单个文件从暂存区提交的本地库,并填写修改信息
  11. git commit -m "first git file" # 将所有暂存区文件从暂存区提交的本地库,并填写修改信息
  12. # -----------------------------------------------------
  13. git reflog # 查看版本信
  14. git log # 查看版本详细信息
  15. # -----------------------------------------------------
  16. git reset --hard 版本号 # 版本穿梭

文件4种状态

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

项目创建

方式一:创建全新的仓库

命令:git init
.git目录中相关文件说明
在这里插入图片描述hooks 目录包含客户端或服务端的钩子脚本;
info 包含一个全局性排除文件
logs 保存日志信息
objects 目录存储所有数据内容;
refs 目录存储指向数据的提交对象的指针(分支
config 文件包含项目特有的配置选项
description 用来显示对仓库的描述信息
HEAD 文件指示目前被检出的分支
index 文件保存暂存区信息

方式二:克隆远程仓库

成员克隆远程仓库
git clone 仓库地址 (在本地生成.git文件 默认为远程仓库配了别名 orgin)
只有在克隆的时候 本地分支master 和 远程跟踪分支别名/master 是有同步关系的
成员做出贡献
修改源码文件
git add
git commit
git push 别名 分支 (输入用户名 密码;推完之后会附带生成远程跟踪分支)
项目经理更新修改
git fetch 别名 (将修改同步到远程跟踪分支上)
git merge 远程跟踪分支

查看文件状态

  1. git status [filename] #查看指定文件状态
  2. git status #查看所有文件状态

在这里插入图片描述

提交文件到暂存区

在这里插入图片描述

如果git add 文件名到暂存区后,如果发现该文件不需要从暂存区提交到本地仓库,则可以使用git reset 文件名将其移除暂存区

将暂存区文件提交到本地仓库

在这里插入图片描述

忽略文件(不需要要上传的文件采用忽略上传)

有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等

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

1、忽略文件中的空行或以井号(#)开始的行将会被忽略。
2、可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,…})代表可选的字符串等。
3、如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
4、如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
5、如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。

  1. #为注释
  2. *.txt #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
  3. !lib.txt #但lib.txt除外
  4. /temp #仅忽略项目根目录下的TODO文件,不包括其它目录
  5. tempbuild/ #忽略build/目录下的所有文件
  6. doc/*.txt #会忽略doc/notes.txt 但不包括 doc/server/arch.txt

发表评论

表情:
评论列表 (有 0 条评论,164人围观)

还没有评论,来说两句吧...

相关阅读

    相关 git——GIT分支

    GIT分支 分支在GIT中相对较难,分支就是科幻电影里面的平行宇宙,如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,我们就需要处