Git和GitHub学习笔记

Git基础

创建项目仓库

  1. New repository

    点击开始创建新的仓库

  2. repository name

    仓库名称

  3. Description

    仓库说明

  4. public/private

    仓库是否公开

    ps:私有项目每月7美元.

  5. Initialize this repository with a README

    自动初始化readme文件

    勾选这个,会自动初始化项目仓库,并设置readme文件,可以直接clone项目仓库。

    如果想添加本地Git项目,不需要勾选,手动Push.

  6. add .gitignore/license

    git屏蔽文件和许可协议

  7. README

    github所有文件都支持markdown格式.

实际操作

  1. git init 初始化项目

    在当前路径生成.git文件,是该项目的工作树,对项目仓库的所有操作都保存在工作树里.

  2. git statue 查看仓库的状态

    每当工作树和仓库被操作的过程中,状态都会发生变化。

    已经发生修改的文件会显示在untracked files里。

  3. git add 把文件添加到暂存区

    暂存区是提交之前的一个临时区域。

    • git add -文件名 提交到暂存区,或git add -A提交所有
    • git commit -m "描述" 把暂存区的文件实际保存到仓库的历史纪录里

    ps:也可以用 git commit -am "描述" 来合并前两个操作

  4. git log 查看提交日志(只查看以当前为终点的日志)

    • gt log --graph 可以以图形表的形式查看日志
    • git reflog 查看当前仓库的所有提交日志(包括回退版本前的)
  5. git diff 查看更改前后的差别

分支

  1. git branch 显示本地所有分支

    git branch -a 查看包括远程仓库的所有分支

    master 表示当前只有一个分支,并且正在master分支下开发

    remote/origin/HEAD

    remote/origin/gh-pages

    ps: remote/表示远程仓库的分支

  2. git checkout -b 创建并切换到分支

    以当前分支去创建,并切换到新分支 git checkout -b newBranch

    切换分支 git checkout newBranch

    分支一般分为主干分支(master),和特性分支.

  3. git merge 合并分支

    假设需要把newBrach分支合并到master分支上:

    git merge --no-ff newBranch 然后输入合并信息

  4. git reset 回退历史版本

    git log 查看历史修改记录的哈希值

    然后:git reset --hard 哈希值

  5. 消除冲突

    当提交,回退,合并操作时发生代码冲突,会提示冲突的文件名,删除冲突的1项代码后,执行:

    git add和git commit

  6. git rebase -i 压缩历史

  7. 删除分支

    • 删除本地分支

    git branch -D newBranch

    • 删除远程分支

    git push origin :newBranch

远程仓库

  1. git remote add 添加本地的远程仓库

    git remote add origin git@github.com:youGitHubName/youGitHubProject.git

    设置当前的项目的远程仓库地址,名称为origin

  2. git push 推送至远程仓库

    git push -u 当前项目的远程仓库名称 以当前分支

    git push -u origin master

    or

    git push -u origin newBranch

  3. git clone 获取远程仓库

    1. 获取主分支(clone下来的项目默认是在master分支下):

    git clone git@github.com:youGitHubName/youGitHubProject.git

    1. 获取其他分支:

    假设clone下来的项目存在分支newBranch,

    git branch 可以看到分支信息里有newBranch

    执行下面来创建一个分支newBranch指向当前项目的newBranch工作树,会自动获取分支数据来源

    git checkout -b newBranch origin/newBranch

  4. git pull 获取最新的仓库分支

    git pull

    git pull origin master

    git pull origin newBranch

GitHub

发送pull request

  1. 打开github上需要pull request的项目主页。

  2. 点击fork github会把项目拷贝到当前账户的项目仓库里。

  3. 把当前账户项目仓库里的这个项目clone到本地来。

    git clone git@github.com:仓库所有人名称/仓库名称

    cd 仓库名称

  4. 在本地创建并切换到特性分支work(分支功能名称,方便识别pull request)

    git branch -a 查看clone出的仓库的分支

    remote/表示远程分支

  5. 修改代码

    对项目进行了修改之后: git commit -am "work changes"

  6. push并创建远程分支work

    git push origin work

    git branch -a 可以查看远程仓库 remote/origin/work 已经被创建

  7. 打开github的用户项目仓库。切换到刚刚push的work分支.

  8. 点击clone按钮下面的compare查看分支间的差别。

  9. 确认完毕后,点击create pull request,填写pull的理由后,点击send pull request.

  10. Pl成功。

  11. 其他

    • 可以在开发过程中就pull request 在标题前注明“WIP”表示正在开发中。

    • 如果不想每次修改都让大家fork,可以为每一个开发人员赋予权限,可以直接创建自己的分支

  12. 因为开发的代码是fork来的,不能保证用户仓库的代码是该源项目仓库的最新版本。所以需要给本地仓库设置原仓库地址:

    1. 先clone下在githubfork来的用户仓库

    2. git clone git@github.com:用户名/test

    3. 然后给本地项目设置远程仓库为源仓库(假设这个项目是baishiup/test) git remote add yuancku git://github.com/baishiup/test.git

    4. 获取远程仓库最新代码与自己的仓库代码合并
      git fetch yuancku

接收pull request

团队开发

  1. 分支master必须一直保持在可部署状态。必须保证这个状态!

  2. 有新的需求或者修改,可以从master创建新的分支,新分支要具有项目-分支描述性

  3. 在新分支下完成需求或修改,在本地分支提交。

  4. 在github端创建同名分支,push。

    如果需要团队帮助或反馈时创建pull request,以pull request进行交流。

  5. 与master合并

nm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值