Mrli
别装作很努力,
因为结局不会陪你演戏。
Contacts:
QQ博客园

git基础知识

2019/12/23 git
Word count: 1,251 | Reading time: 5min

概念

工作区:

工作空间分为三个状态区:

  • 工作区
  • 暂存区
  • 历史记录区

三个区域关系:工作区是我们能看到的区域,我们在工作区修改增加代码;完成编辑后,我们用git add 将工作区文件添加到暂存区;然后利用git commit 提交文件到我们自己的分支。

HEAD头指针:

Head指向的是当前版本(最新的提交)

1

基础命令

1
2
3
4
5
6
$ git add 文件名
# 将文件添加到暂存区中 (其中git add.可以将当前目录的子目录文件都添加到暂存区中)
$ git status
# 显示工作目录和暂存区的状态
$ git diff ID1/ID2
# 查看版本差异:

分支操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ git branch        
# 分支一展表
>>> *(branch)显示当前分支
$ git checkout -b 分支名
# 创建,且切换到新建分支 <==等价于==> git branch 分支名,git checkout 分支名
$ git branch -d [分支名称]
# 删除一个分支, -d选项只能删除已经参与过合并的分支,对于未参与合并的分支是无法删除的。
# 如果想强制删除一个分支,可以使用-D选项
$ git checkout 文件名 :切换分支 (git checkout - 为切换到上一个分支)
$ git merge --no-f 分支名 : 合并分支
$ git rebase -i
# 压缩历史(如果出现拼写错误时需要): git rebase -i HEAD~2
pick xxxx...
pick xxxx... 只要将这个(出现拼写错误的那个提交ID前的pick改成fixup就行了)

远程仓库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$ git remote add 远程仓库名 
# 添加远程仓库
$ git@github.com:用户名/git-tutorial.git
$ git push -u 远程仓库名 本地分支名
# 将本地分支推送到远程仓库中:
$ git checkout -b 新仓库名 远仓库名/远程分支名
$ git pull [远程仓库名] [本地分支名称]
# 更新:拉取远程仓库代码,如果你远程只有一个分支,本地只有一个分支,后面中括号内容都可以省略
$ git push [远程仓库名] [本地分支名称]
# 推送代码到远程仓库
$ git remote -v
# 查看远程仓库
$ git remote rm [远程仓库名]
# 清除远程代码仓库:
$ git push origin 本地分支名:master
# 提交本地分支提交到远程的master分支
$ git push origin :heads/[分支名称] 或 $ git push origin :[分支名称]
# 删除远程分支
$ git branch -r
# 查看远程git服务器上的分支:
$ git fetch origin
# 获取远端库最新信息
$ git diff master origin/master
# 查看本地与远程服务端的不同

删除远程分支git push origin --delete kickof

git status 命令 表示 查看仓库当前状态;

git diff 命令 表示 查看修改内容;

git push代码到远程新分支
git push origin master:my_remote_new_branch

remote: You are not allowed to push code to this project.
fatal: unable to access ‘http://lyl233.f3322.net:11111/apollo/Apollo_Open_Resources.git/’: The requested URL returned error: 403

git remote set-url origin http://lyl233.f3322.net:11111/Chenli/Apollo_Open_Resources.git

日志

1
2
3
4
$ git log
# 提交日志(当前状态为终点) 会产生版本库里一系列单独提交的历史
$ git log -p README.md
$ git log -graph

撤销操作

撤销文件提交到暂存区

1
$ git rm 文件名

撤销上一次提交(commit),并重新提交

修改提交信息

1
2
$ git commit --amend
# 可以重新修改提交信息,也可以不修改

▲.将暂存区内的文件代替工作区的(工作区内的文件复原)

1
git checkout -- .

▲.将将最近一次版本库文件代替暂存区的(暂存区内的文件复原)

1
2
3
4
git reset HEAD .
# 将暂存区拉回工作区
git checkout -- .
# 将工作区复原

撤销


从云服务器更新文件到仓库

1.查看git 版本(是否安装,一般都是默认安装好了的)

2.设置github账号密码:

1
2
$ git config --global user.email "you@example.com"
$ git config --global user.name "Your Name"

3.设置上传方式

1
git config --global push.default simple
  • matching(匹配所有分支)
    matching 参数是 Git 1.x 的默认参数,也就是老的执行方式。其意是如果你执行 git push 但没有指定分支,它将 push 所有你本地的分支到远程仓库中对应匹配的分支。

  • simple(匹配单个分支)

    simple参数是 Git 2.x 默认参数,意思是执行 git push 没有指定分支时,只有当前分支会被 push 到远程仓库。

4.上传需要上传的文件

1
2
3
4
#git init 如果没有初始化仓库的话....(更新的话就不需要
git add .
git commit -m "xxx"
git push

修改.gitignore生效指令

1
2
3
git rm -r --cached . // 删除本地缓存
git add . // 添加要提交的文件
git commit -m 'update .gitignore' // 更新本地的缓存

附录:

Git远程操作详解

使用git将项目上传到github(最简单方法)

Author: Mrli

Link: https://nymrli.top/2019/01/17/git使用/

Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.

< PreviousPost
前端Vue框架学习
NextPost >
数据结构实验1——线性表及多项式的运算
CATALOG
  1. 1. 概念
    1. 1.1. 工作区:
    2. 1.2. HEAD头指针:
  2. 2. 基础命令
    1. 2.1. 分支操作
    2. 2.2. 远程仓库
    3. 2.3. 日志
    4. 2.4. 撤销操作
  3. 3. 从云服务器更新文件到仓库
    1. 3.1. 1.查看git 版本(是否安装,一般都是默认安装好了的)
    2. 3.2. 2.设置github账号密码:
    3. 3.3. 3.设置上传方式
    4. 3.4. 4.上传需要上传的文件
  4. 4. 修改.gitignore生效指令
  5. 5. 附录:
    1. 5.1. Git远程操作详解
    2. 5.2. 使用git将项目上传到github(最简单方法)