git学习随记

git中文件的三个状态

git系统中,用户的文件会有三个状态,即:modified, staged, committed.
modified:表示已经被修改,但是还未被提交到仓库;
staged:表示以及标记了某一个被修改了的文件,待提交;
committed:表示已经被安全的提交了并保存在了仓库中;
在这里插入图片描述

安装之后的第一次使用

需要配置一些信息:这些配置文件更具权限不同分别有三个权限等级配置文件。
[path]/etc/gitconfig:
系统权限的配置文件,在设置时需要管理员或者超级管理员才能设置,git config时需要指定–system来进行设置。
** ~/.gitconfig 或者 ~/.config/git/config:**
用户级别的配置文件,在设置时需要指定–global选项。注意~表示当前用户的根目录,针对系统的根目录,不是安装目录,也不是仓库目录。比如:C:\Users\Howe-BNB
.git/config:
是在仓库目录下的配置文件,是对该仓库下的配置,配置时需要制定–local选项,配置改文件时,必须在对应的仓库目录下。

可以通过命令查看配置文件的路径:

git config --list --show-origin

开始使用git前必须设置用户名和邮箱,因为每一次提交的代码都是需要这些信息,因为使用–global选项后,一次即可,不需要每次都设置。如果某些项目需要改变用户和邮箱,那么可以重写,但是不带–global或者使用–local选项,那么在改项目仓库中使用的是新的信息,它其实就是写在仓库的.git/config中。

git config --global user.name "howe"
git config --global user.email "11111@..."

当然,也可以设置你默认的编辑器,如需要可以自行再查阅手册。
常用的编辑器有:Vim\Emacs\Notepad++

git confit --global core.editor emacs

还可以设置branch name,当运行git init初始化仓库时,默认的branch name是master。当然,也可以通过命令行进行修改成main:

git config --global core.defaultBranch main
git config --list  #查看所有配置的内容

对某一个目录进行git管理,通过运行git init会在目录下生成一个.git的目录,该.git下会生成必要的一些文件。

git init

如果是克隆一个项目:

git clone 克隆地址 [本地目录]

提交任务流程和状态

在这里插入图片描述
在仓库目录下,有两种文件:tracked和untracked。tracked文件是在最后的snapshot中的,其他的都是untracked文件。而tracked文件有有unmodified\modified\staged三种状态。简单而言,tracked文件就是git知道了的,备案了的;其他的都是untracked文件,可以通过git add将untracked文件变成tracked文件。
通过git status 可以查看文件的状态

git status

提交

git commit -m '备注信息'
git commit -a -m '备注信息'  #也可以通过-a选项,跳过git add到stage area的步骤。

删除文件

对于删除tracked的文件,将文件先使用git rm命令删除后,需要再提交一次,这样删除才会生效,这样两部走,防止了误删而无法找回的危险。
对于untracked的文件,直接删除即可,因为它还未受到git的追踪。

新建分支branch

在一个项目中,往往是由多有开发人员组成的,因此一个项目应有一条代码主线,如果所有人都在主线上进行直接修改,那么很容易被覆盖而凌乱。最好的模式就是每一个人在分支上进行,确定无误后,再合并到主分支中去。

git branch iss53    #创建一个名字叫iss53的分支
git checkout iss53  #切换到iss53对应的分支中
#接下去的修改提交都只在iss53分支上

在这里插入图片描述
在这里插入图片描述
此时,如果再切换到master分支时,可以发现,在工作目录下的文件并不是iss53分支下修改后的文件,而是master分支对应最后一次提交的文件。因此也可以看出两个分支并不相互影响,从图中可以明显可以看出。

合并分支

当分支的代码修改统一,可以上线时,可以将该条分支合并到主线中。

git checkout master    #切换到主线master中
git merge iss53        #将iss53合并到主线master中去,此时master将指向C3
git branch -d iss53    #将iss53合并到master之后,原iss53这个pointer便可以删除了,通过-d选项可以进行删除

撤销或者返回到某一个提交点

git reset --mixed commit_id    #该命令是将程序回到某一个提交点,回退到哪一个有commit_id决定,一般可以只取前6位。回退后工作区中的代码保留修改的内容,commit状态和index状态都会恢复,也就是说需要重新提交时,需要将修改后的代码git add一下。--mixed也是默认的方法,可以不写
git reset --soft commit_ed    #--soft选项会回退,但是修改后的代码和index不会被恢复,也就是说,可以直接commit,不用git add了
git reset --hard commit_id   #使用了--hard选项,回退之后,该点之后修改后的代码都将被删除,工作区中的是回退之后最后一次提交的代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值