Git 学习 I

git使用

绝大实验内容来自实验楼

因为最近看代码,最好能在改一改之后还能回去,所以想学一下基本的git

git clone

git clone https://github.com/shiyanlou/gitproject

创建文件夹
mkdir project

git init

初始化git 仓库 / 建立 初始的master分支

操作流程

  1. 创建或修改文件
    1. 添加文件之后 三个文件处于 untracked 状态(未追踪的文件)
  2. 使用git add 命令添加新创建或修改的文件到本地的缓冲区 index (为 git commit 做准备)
  3. 使用 git commit 提交到本地代码仓库
    1. 可以使用git commit - m “add 3 files” 添加注释
      1. 会将所有 git add 的文件和修改进行提交 没有add的任何东西不进行提交
    2. -a 参数 可以将所有 没有加到缓冲区的修改也一起提交 但 -a 不会添加新建的文件
      1. eg.git commit -a -m “add 3 files” 将文件内容的修改也commit,但是不会添加untrack(未被追踪的)文件
  4. 如果时删除文件 则 git rm删除后将已删除文件的信息添加到缓冲区,git commit 时 会将对应文件删除
  5. (可选,有时并没有可以同步的远程代码仓库)使用git push命令将本地代码库同步到远端代码库

可以使用 git diff

将当前仓库和远程仓库相关联

Git 本地仓库与 Github 远程仓库关联

  1. 在github创建一个仓库
  2. 在本机获得 ssh的公钥和私钥
  3. 将私钥加入Account setting->SSH and GPGkeys 中
  4. 验证是否成功
  5. 设置user 的name和email
  6. 上传本地仓库至Github

分支操作

创建分支
git branch experimentl
查看当前分支列表
git branch
切换分支至 experimental分支
git checkout experimentl
# 同理可以 切换回master
git checkout master
# 两个分支里的东西相互不影响/在一个分支里看不到另一个分支里的更改
将experimental 分支 合并到master
git merge -m 'merge experimental branch' experimental
# -m 仍然是 需要填写合并的注释信息
当有冲突
# eg. 在master 和 experimental 分支中 都修改了file3
git checkout master
# 修改file3文件
echo "master: update file3" >> file3
# 提交到master分支
git commit -a -m 'update file3 on master'

# 切换到experimental分支
$ git checkout experimental
# 修改file3文件
$ echo "experimental: update file3" >> file3
# 提交到experimental分支
$ git commit -a -m 'update file3 on experimental'

# 进行合并
git checkout master
git merge experimental
# 这时候会报错
"""
Auto-merging file3
CONFLICT (content): Merge conflict in file3
Automatic merge failed; fix conflicts and then commit the result.
"""

# master文件 file3里会变成
"""
<<<<<<< HEAD
master: update file3
=======
experimental: update file3
>>>>>>> experimental
"""
# 这时候 直接开 vim 更改 file3就可以
vim file3  # 在其中进行修改

# 然后提交
git add file3
git commit -m 'merge file3'

删除分支
git branch -d experimentl  # 删除 已被合并的 分支
git branch -D  # 强制删除某一分支
撤销一次合并
git reset --hard HEAD^
快速向前合并

如果当前分支和另一个分支没有内容上的差异,Git 不创建任何新的提交(commit),只是将当前分支指向合并进来的分支

日志

显示提交
git log  # 显示所有提交
# 可以使用 git help log 查看git log 的选项
git log v2.5.. Makefile fs/  # 找出所有从 "v2.5“ 开始在 fs 目录下的所有 Makefile 的修改(这个只是举例,不用操作
日志统计
# 显示那些文件被修改,增加或删除了多少内容
git log --stat
格式化输出日志
# 使用 --pretty 参数 规定格式
# 注意等号两边不能有空格
git log --pretty=oneline  # 单行
git log --pretty=short  # 精简了一些东西
git log -graph --pretty=oneline  # 可视化提交图,用ASCII字符画出一个 提交历史(虽然不好看,但感觉挺强大)
日志排序

日志可以选用不同的顺序显示 (当然需要加入一些参数)

默认情况下逆序

git log --pretty=format:'%h : %s' --topo-order --graph
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值