Git学习笔记

Github

基本概念

仓库 repository

收藏 star

复制克隆项目 fork

1
2
3
4
5
点击fork 会复制别人的项目到自己的仓库中,独立存在,如果想给该项目增加新的功能的话,编写好文件后,点击 Pull request 发起请求,
别人收到我发的请求,感觉满意的话,就合并在一起。

fork: 和别人共同维护一个仓库,提供新的功能升级
别人通过 Merge pull request 合并,

关注Watch

事务卡片 Issue

1
主要用来讨论该项目是否存在哪些问题的模块

开源项目贡献流程

新建Issue
1
提出使用问题
Pull Request
1
2
3
4
1. form项目
2. 修改自己仓库的项目代码
3. 新建 pull request
4. 等待作者操作

Git 工作区域

工作区 ————添加编辑

暂存区————编辑好存放到暂存区,后续可能还有新的功能

Git仓库———–最终上传到Git仓库


本地操作

Git 基本使用

基本信息配置
1
2
3
4
5
6
7
8
#1. 设置用户名
git config --global user.name '自定义'

#2. 设置用户名邮箱
git config --global user.name '邮箱地址'

#3. 查看设置
git config --list
初始化一个新的Git仓库
1
2
3
4
5
6
#1. 创建文件夹
mkdir 文件名

#2. 在该文件内初始化Git(创建Git仓库)
cd 文件名
git init
添加文件
1
2
3
4
5
6
7
8
9
10
11
 #1. 创建文件
touch 文件类型,后缀

#2.添加文件----------------文件在工作区
git add 文件

#3.查看状态
git status

#4. 提交文件------------------这会文件提交到了暂存区了
git commit -m '提交描述'
.删除文件
1
2
3
4
5
6
7
8
#1.删除文件
rm 文件

#2.从git中删除文件
git rm 文件

#3.提交------------文件从git中删除成功
git commit -m '提交描述'


上传到Git云端操作

#####

1
2
3
4
5
6
7
8
#1.多人开发协作时,先克隆该项目,fork了
git clone 克隆地址

#2.添加写好的文件
git add 文件类型

#3.提交添加描述
git commit -m '提交描述'


整体流程

1.创建文件
2.添加到暂存区
3.添加到本地仓库
4.添加到远程仓库

使用Git 搭建个人网站

Git 常用命令

创建文件

  • touch 文件名 ———————– 创建一个文件
  • cat 文件名 ———————— 打开文件,并读出文件内容
  • mkdir 文件夹名 ————————— 创建一个文件夹
  • rm 文件名 —————————– 删除文件

文件信息

  • ls // 查看当前路径下面的所有文件名
  • ls 文件夹名 // 查看对应文件夹中的内容
  • ls -l // 拉出最近git提交记录以及对应修改的文件名
  • ls -l -a // 拉出最近git提交记录以及对应修改的文件名,隐藏的文件也会显示

cd 切换路径

  • cd ~ // 将工作路径快速切换到root
  • cd - // 将工作路径切换到上一状态
  • cd ../ // 切回到上一个工作路径
  • cd 文件夹名 // 进入某个目录
  • cd / // 进入根目录

常用指令

1
2
3
4
5
6
7
8
9
10
11
12
13
git init // 初始化 在工作路径上创建主分支
git clone 地址 // 克隆远程仓库
git clone -b 分支名 地址 // 克隆分支的代码到本地
git status // 查看状态
git add 文件名 // 将某个文件存入暂存区
git add b c //把b和c存入暂存区
git add . // 将所有文件提交到暂存区
git add -p 文件名 // 一个文件分多次提交
git stash -u -k // 提交部分文件内容 到仓库 例如本地有3个文件 a b c 只想提交a b到远程仓库 git add a b 然后 git stash -u -k 再然后git commit -m "备注信息" 然后再push push之后 git stash pop 把之前放入堆栈的c拿出来 继续下一波操作
git commit -m "提交的备注信息" // 提交到仓库
若已经有若干文件放入仓库,再次提交可以不用git add和git commit -m "备注信息"2步, 直接用
git commit -am "备注信息" // 将内容放至仓库 也可用git commit -a -m "备注信息"
* git commit中的备注信息尽量完善 养成良好提交习惯 例如 git commit -m "变更(范围):变更的内容"

查看git常用指令

1
git helper -a // 查看全部git子命令

删除放入暂存区文件的方法(已commit后)

1
2
git rm 文件名 // 将该文件从commit后撤回到add后
git reset HEAD^ --hard // 删除后 可以用git rm 文件名再回撤一步

修改文件名以及移动

1
2
git mv a b // 把a文件名字改成b 并且直接放入git add后的暂存区
git mv b ./demos/ // 把b文件移动到demos文件夹下

查看信息

1
2
3
4
5
6
7
8
9
git log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
// 获取git log里的树形详细信息 包括hasg 日期 提交信息 提交人等
git log --oneline //拉出所有提交信息 q是退出
git log -5 // 查看前5次的提交记录
git log --oneline -5 // 打印出的日志里面只有哈希值和修改的内容备注
git log 文件名 // 查看该文件的提交
git log --grep // 想过滤看到的内容 过滤日志
git log -n // 查看近期提交的n条信息内容
git log -p // 查看详细提交记录

回撤操作

1
2
3
4
5
6
7
8
9
10
git commit --amend -m "提交信息" // 回撤上一次提交并与本次工作区一起提交
git reset HEAD~2 --hard // 回撤2
git reset --files // 从仓库回撤到暂存区
git reset HEAD // 回撤暂存区内容到工作目录
git reset HEAD --soft 回撤提交到暂存区
git reset HEAD --hard // 回撤提交 放弃变更 (慎用)
git reset HEAD^ // 回撤仓库最后一次提交
git reset --hard commitid // 回撤到该次提交id的位置

git push -f -u origin 分支名 所有内容都回撤完了 将回撤后的操作强制推送到远程分支

分支

1
2
3
4
5
6
7
8
9
10
11
12
13
14
git branch 分支名 // 新建分支
git branch // 查看当前所有分支
git checkout 分支名 // 检出分支
git checkout -b 分支名 // 创建并切换分支
git branch -v // 查看分支以及提交hash值和commit信息
git merge 分支名 // 把该分支的内容合并到现有分支上
git branch -d 分支名 // 删除分支
git branch -D 分支名 // 强制删除 若没有其他分支合并就删除 d会提示 D不会
git branch -m 旧分支名 新分支名 // 修改分支名
git branch -M 旧分支名 新分支名 // 修改分支名 M强制修改 若与其他分支有冲突也会创建(慎用)
git branch -r // 列出远程分支(远程所有分支名)
git branch -a // 查看远程分支(列出远程分支以及本地分支名)
git fetch // 更新remote索引
git push -u origin 分支名 // 将本地分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push 也可解决 git建立远程分支关联时出现fatal ... upstram的问题

分支合并

1
2
3
4
5
6
7
8
9
10
11
12
13
14
1. 先切换当前分支上
git checkout 分支A
2. 添加文件,上传到暂存区
git add . / git add 指定的文件
3. 提交到本仓库
git commit -m '上传文件描述'
4. 切换到要提交的分支
git checkout 分支B
5. 开始合并分支A---》B
git merge A 将A 分支 合并到B 分支上了
6. 将本地仓库推送到远程仓库
git push origin master

合并成功

历史提交记录并回退版本

1
1. git reset –hard HEAD ^   ( ^ 表示回到上一个版本,如果需要回退到上上个版本的话,将HEAD^改成HEAD^^, 以此类推。那如果要回退到前100个版本,这种方法肯定不方便,我们可以使用简便命令操作:git reset –hard HEAD~100 );

Author: Small Xin
Link: http://yoursite.com/2019/06/30/Github/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • 微信
  • 支付寶