Git -淘宝镜像下载地址-配置

时间:2024-04-16 10:36:53
下载地址:

https://npm.taobao.org/mirrors/git-for-windows/

环境配置:
  1. 用户名和邮箱
    本质是本地文件,所以在本地文件中也可以改
$ git config --global user.name "username" # 配置用户名
$ git config --global user.email 333@qq.com # 配置邮箱
$ git config --global --list # 查看global(全局)配置
$ git config --system --list # 查看system(系统)配置
  1. 环境变量
    配不配都行,只是全局使用
    image

  2. 基本工作原理
    image

image

  • Directory:使用Git管理的一个目录,也就是一个仓库,包含我们的工作空间和Git的管理空间。
  • WorkSpace:需要通过Git进行版本控制的目录和文件,这些目录和文件组成了工作空间。
  • .git:存放Git管理信息的目录,初始化仓库的时候自动创建。
  • Index/Stage:暂存区,或者叫待提交更新区,在提交进入repo之前,我们可以把所有的更新放在暂存区。
  • Local Repo:本地仓库,一个存放在本地的版本库;HEAD会只是当前的开发分支(branch)。
  • Stash:隐藏,是一个工作状态保存栈,用于保存/恢复WorkSpace中的临时状态。

git的工作流程:
1、在工作目录中添加、修改文件;
2、将需要进行版本管理的文件放入暂存区域;
3、将暂存区域的文件提交到git仓库。
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)

3. 项目搭建
  1. 本地搭建
    ① 进入目标文件夹,初始化工作空间
    完成之后会有一个隐藏的.git文件夹
$ git init # 初始化工作空间
  1. 远程克隆
$ git clone http://... # 远程仓库的项目的地址

image

4. Git文件操作
  • 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 # 查看文件状态,后跟文件名查看指定文件
$ git add . # 将文件添加到暂存区
$ git commit -m "is a new file!" # 体检暂存区的东西 ,m提交消息
5. 忽略文件
  • 有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等
  • 在主目录下建立".gitignore"文件(Maven新建项目也会有),此文件有如下规则:
*.txt		#忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
!lib.txt	#但lib.txt除外
/temp		#仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/		#忽略build/目录下的所有文件
doc/*.txt	#会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
6. 绑定SSH公钥

实现免密登录

$ cd 进入C:\Users\uyimirin\.ssh目录 # 一般在这里
$ ssh-keygen -t rsa # t加密以下

然后把公钥复制给gitee

7. idea集成Git

新建的项目,绑定项目:
方式一:将远程克隆的项目全部复制到idea新建项目下
方式二:idea创建项目时选择克隆的文件夹

image

image

8. 分支

常用命令:

# 列出所有本地分支
git branch

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

# 新建一个分支,但依然停留在当前分支
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]
如果同一个文件在合并分支时都被修改了则会引起冲突:解决的办法是我们可以修改冲突文件后重新提交!选择要保留他的代码还是你的代码!

master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。