Git总结

git的架构

  • 版本库:项目中,git init之后会有一个.git的目录,这个目录不属于工作区,而是git的版本库,管理git的所有内容
  • 暂存区:版本库中的一个临时存储的区域,保存提交的文件
  • 分支:版本库中包括若干个分支,从暂存区提交出去的文件会在分支中形成 一个版本(提交点)

仓库(版本库)

仓库就是一个目录,这个目录内的文件被git所管理起来

新建一个仓库

在一个目录下,运行

1
git init 

基本操作

  1. 查看仓库状态

    1
    git status
  2. 将有修改的文件提交到暂存区

    1
    git add .
  3. 将暂存区的文件提交到分支,形成一个版本(提交点)

    1
    git commit -m "这一次提交的信息"

远程仓库

刚才我们所说的仓库其实是本地仓库,在多人开发中,每个人都会有一个自己的本地仓库,同时,更重要的,为了让多人可以共享代码,应该有一个远程仓库

“远程仓库”的选择

  • github
  • 码云
  • 公司内部构建的远程仓库

远程仓库的操作

  1. 注册github账号

  2. 创建一个空的仓库

  3. 将需要提交到远程仓库的目录进行如下操作

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 初始化目录
    git init
    # 查看当前状态
    git status
    # 提交到暂存区
    git add .
    # 提交成一个版本
    git commit -m 'first commit'
    # 在远程创建一个地址
    git remote add origin github仓库地址
    # 将当前版本提交到远程地址的master分支
    git push -u origin master

远程仓库的共享和克隆

此时我们已经有了一个自己的远程仓库,同时仓库内的master分支上已经有我们刚才提交的文件。此时如果有其他人员需要下载这个项目,需要进行克隆操作

1
git clone 仓库地址

提交

撤回提交 git reset

参考来源

–soft

1
2
3
4
5
6
7
8
# 撤回上一次提交
git reset --soft HEAD^
git reset --soft HEAD~1
# 撤回2次提交
git reset --soft HEAD~2
# 按提交记录撤回
git log # 查看提交记录
git reset --soft 某次记录编号 # 撤回某次记录

–mixed

意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ git reset HEAD^ 效果是一样的。

–soft

不删除工作空间改动代码,撤销commit,不撤销git add .

–hard

删除工作空间改动代码,撤销commit,撤销git add .

注意完成这个操作后,就恢复到了上一次的commit状态。

修改提交注释

1
git commit --amend

分支

一个远程仓库中可以有多个分支(master, dev, test),而一个分支上就存储了我们之前提交的版本,随着提交次数的增多,在分支上会形成一条时间线,每一次的git commit 操作都会在分支上形成一个版本

基本操作

  1. 查看分支

    1
    git branch
  2. 创建新的分支,同时复制当前分支

    1
    git branch 分支名
  3. 切换分支

    1
    git checkout 分支名
  4. 将新分支提交

    1
    git push origin HEAD -u

指针

每一个分支都有一个指针,指针默认都会指向分支上最新的一个版本

分支提交日志查询

1
git log --oneline

分支合并

将一个分支合并到另一个分支上

1
git merge 分支a    #把分支a合并到当前分支上

git命令总结

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
git init      #初始化本地仓库
git add <file> 文件名 #添加文件
git status #查看状态
git commit #提交
git push #推送到仓库
git pull #从远程仓库拉取数据
git clone #从远程仓库拷贝数据

git config --global user.name 'xxx' # 添加用户名
git config --global user.name 'xxx' # 添加邮箱

git rm --cached index.html #删除指定的某个文件
git add *.html # 添加某一类型的 文件
git add . #添加全部文件
git commit -m 'changed index.js' #提交并修改备注

.gitignore # 在该文件里面 可以添加一些不需要上传的文件

git branch '...随便起一个分支名' # 创建分支
git checkout '分支名' # 切换到对应的分支
git checkout 'master' # 切换到主分支
git merge # 合并分支

git log # 查看提交历史
git reset --soft HEAD^ # 撤回上一次提交
git reset --soft HEAD~2 # 撤回2次提交
git reset --soft 某次记录编号 # 撤回某次记录

上传到远程仓库

1
2
3
4
5
6
 # 连接到远程仓库
git remote add origin https://github.com/liuhaha2001/liu.git
# 查看是否连接上了
git branch -M master
# 上传到master分支
git push -u origin master