配置git基本操作

【配置git基本操作】
$ git congig -l 当前项目下关于git的所有配置
$ git config --system --list # 查看系统config
$ git config --global --list # 查看当前用户(global)配置
【设置全局用户和邮箱*】
$ git config --global  user.name "JUJI"
$ git config --global  user.email "1581643513@qq.com"

【git工作流程】

git工作区(本地磁盘目录)、暂存区(虚拟仓库—在本地磁盘创建)、远程仓库(码农上的仓库)

git的工作流程一般是这样的:

1、在工作目录中添加、修改文件;

2、将需要进行版本管理的文件放入暂存区域;

3、将暂存区域的文件提交到git仓库。

因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)

img

# 在当前目录新建一个Git代码库
# 在本地进行初始化(建立暂存区)
# 产生.git文件(文件存储当前项目的所有版本信息)
$ git init	
# 新建一个目录,将其初始化为Git代码库
$ git init [project-name]
【工作区 => 暂存区】

文件的四种状态

  • Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
  • Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件
  • Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改 !
  • Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified
查看文件状态
# 查看指定文件状态
$ git status [filename]
# 查看所有文件状态
$ git status		
添加文件
# Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区
# 还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
# 添加指定文件到暂存区
$ git add [filename]
# 添加所有文件到暂存区
$ git add * 
$ git add .

# 提交暂存区中的内容到本地仓库 -m 提交信息
$ git commit --m "这一次提交的描述"
删除文件
# 直接从暂存区删除文件,工作区则不做出改变
$ git rm --cached <file>

# 通过重写目录树移除add文件,如果已经用add 命令把文件加入stage了,就先需要从stage中撤销
$ git reset HEAD <file>
$ git reset --hard HEAD^  # 退回到上个版本,如果需要退回好多版本就在后面加上^
$ git reset --hard HEAD^^ # 退回两个版本
$ git reset --hard 版本号  # 恢复文件到指定的某一个版本

# 移除所有未跟踪文件
# 一般会加上参数-df,-d表示包含目录,-f表示强制清除。
$ git clean [options] 

# 只从stage(暂存)中删除,保留物理文件
$ git rm --cached readme.txt 

# 不但从stage(暂存)中删除,同时删除物理文件
$ git rm readme.txt 

# 把a.txt改名为b.txt
$ git mv a.txt b.txt 
删除文件

查看文件修改后差异
# 查看文件修改后的差异 ---a表示修改之前的文件,+++b表示修改后的文件
$ git diff [files]

# 比较暂存区的文件与之前已经提交过的文件
$ git diff --cached

# 比较repo与工作空间中的文件差异
$ git diff HEAD~n
替换本地改动
# 从暂存区将文件恢复到工作区(恢复到修改文件之前)
# 假如你做错事,你可以使用如下命令替换掉本地改动:
$ git checkout [filename]
日志与历史
# 查看已经提交到暂存区的历史版本
$ git log		

忽略文件

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

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

  1. 忽略文件中的空行或以井号(#)开始的行将会被忽略。
  2. 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,…})代表可选的字符串等。
  3. 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
  4. 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
  5. 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
#为注释
*.txt        #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
!lib.txt     #但lib.txt除外
/temp        #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/       #忽略build/目录下的所有文件
doc/*.txt    #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
【暂存区 => 远程仓库】
# 生成ssh密匙,设置本机绑定SSH公钥,实现免密码登录
$ ssh-keygen -t rsa -C "1581643513@qq.com"	
# 查看公钥
$ cat ~/.ssh/id_rsa.pub	

# git配置远程地址
$ git remote add origin https://gitee.com/ju_ji/se20_18200135224.git
# git删除远程地址
$ git remote rm origin
# 查看远程仓库地址信息
$ git remote -v 

$ git push -u origin master
$ git pull --rebase origin master
$ git push -f origin master # 一般第一次提交使用强制push
# 【注】提交过程中,可能需要你输入用户名,密码
【远程仓库 => 工作区(克隆)】
# 从远程仓库,克隆项目到本地————克隆一个项目和它的整个代码历史(版本信息)
$ git clone [url]
$ git clone https://gitee.com/ju_ji/se20_18200135224.git		
$ git pull origin master --allow-unrelated-histories # 可以允许不相关历史提,强制合并
$ git pull		从远程仓库同步本地代码(更新)
【git分支】
# 列出所有本地分支
$ git branch

# 列出所有远程分支
$ git branch -r
8
# 新建一个分支,但依然停留在当前分支
$ git branch [branch-name]

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

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

# 删除分支
$ git branch -d [branch-name]

# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
【正常使用】
$ git add *
$ git commit -m "提交描述"
$ git status
$ git push
【一般流程】
第一次上传
# 一般git流程
# 1.初始化本地git仓库
$ git init

# 2.添加文件到本地git仓库
$ git add .

# 3.提交到本地git仓库
$ git commit -m ""

# 4.添加远程git仓库地址
# git配置远程地址
$ git remote add origin https://gitee.com/ju_ji/se20_18200135224.git
# git删除远程地址
$ git remote rm origin
# 查看远程仓库地址信息
$ git remote -v 

# 5.先pull获取git仓库更新本地
$ git pull origin master
$ git pull --rebase origin master
$ git pull origin master --allow-unrelated-histories # 可以允许不相关历史提,强制合并
# 6.再push本地git仓库更新远程
$ git push -u origin master

# 7.结束
# 注意:
# 1.如果,第一次新建的git远程仓库,建议强制push;
$ git push -f origin master
# 2.如果add远程git仓库地址,已经存在,并且不正确,可以remove,再添加;
正常上传
$ git add *
$ git commit -m "提交描述"
$ git status
$ git push
删除文件流程
# 四步走
# 第一步删除本地文件
$ rm 文件名称
$ rm -rf 文件夹名称

# 第二步删除缓存文件
$ git rm 文件名称
$ git rm -rf 文件夹名称

# 第三步提交暂存区中的内容到本地仓库 -m 提交信息
$ git commit --m "这一次提交的描述"

# 第四步提交
$ git push
克隆文件
# 同步远程仓库和本地文件
$ git pull origin master
# 克隆其他人远程仓库的文件
$ git clone https://gitee.com/zouencen/software_eng.git
$ git add [文件名]
$ git commit -m ""
$ git push 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值