Git、GitHub 常用指令教程及常见问题

详细教程建议访问廖雪峰老师的教程

——> https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

或者查看知乎话题

——> https://www.zhihu.com/question/20070065/answer/517839193

以下是个人整理(欢迎补充):

创建仓库

1) mkdir learngit                  #(创建目录)

2) cd learngit                     #(进入目录)

3) pwd                             #(查看当前路径)

4) git init                        #(将目录变成仓库)

 

创建编辑文件

1) vi readme.txt                   #(创建一个文本并编辑)

2) vi 命令:
        i                          #进入编辑模式
        ESC                        #退出编辑模式
        wq                         #保存并退出

 

文件操作

1) git add readme.txt              #添加到仓库

2) git commit -m "文件描述"         #提交文件

3) git status                      #查看状态

4) git diff + 文件名               #查看文件具体修改内容

5) git log                        #查看历史纪录

6) git reflog                     #记录每一次命令

 

版本回退

1) git reset                       #回退版本
        HEAD                       #表示当前版本
        HEAD^                      #上一个版本
        HEAD^^                     #上上个版本
        ……                         ……
        HEAD~100                   #往上一百个版本

        用法:git reset --hard HEAD^

 

工作区、暂存区、版本库

1) 工作区:learngit 目录
    版本库:.git 目录
    暂存区:stage 或 index

2) git diff                       #查看工作区与暂存区的不同

3) git diff --cached              #查看暂存区与版本库的不同

4) git diff HEAD --文件           #查看工作区与版本库的不同

5) 文件修改时处于工作区
    git add  放到暂存区
    git commit  上传到版本库

 

撤销操作

1) git checkout --文件            #撤销操作
        如果已经git add 到暂存区
        1) git reset HEAD 文件
        2) git checkout --文件

 

远程仓库

创建SSH key

1) ssh -keygen -t rsa -C "你的邮箱"

2) 去 C://user/Hasee/.ssh 文件夹下,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,随便说都ok

3) 打开GitHub > Settings > SSH keys > 粘贴公钥 > add key

创建远程仓库

1) 在GitHub中点击 new repository

2) 输入名字name:learngit(自定义随便起)

3) create

添加远程库

git remote add origin git@github.com:mg-mo/learngit.git

其中: origin 是远程库的名称
       git@github.com:mg-mo 是你的git用户

将本地内容提交到远程库

1) git push -u origin master              # 首次提交加 -u

2) 修改后重新提交  git push origin master

git push 提交失败

原因: README.md 文件不在本地

解决方法:
        1) git pull --rebase origin master
        2) git push -u origin master

克隆

1) 新建一个仓库  gitskills
    (勾选Initialize this repository with a README,GitHub会自动为我们创建一个README.md文件)

2) 输入命令克隆到本地
    git clone git@github.com:mg-mo/gitskills.git

将本地代码更新到本地

git fetch origin master   (master 为分支名称,可更改)

不知道分支是啥? 不慌,继续往下看

创建合并分支

借用廖雪峰老师的解释:每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向mastermaster才是指向提交的,所以,HEAD指向的就是当前分支。

1) 新建dev 分支并切换到dev
    git checkout -b dev         # -b 表示创建分支
    git branch                  # 列出所有分支,当前分支有一个*

分支的操作

1) 在dev 分支上对文件做出修改,切回master 分支
    git checkout master

2) 将dev 分支的修改合并到master
    git merge dev

3) 删除 dev 分支
    git branch -d dev

4) 查看分支历史
    git log --graph --pretty=oneline --abbrev-commit

5) 禁用快速合并
    git merge --no-ff -m "添加commit描述" dev

存储当前工作及恢复

1) 存储:
        git stash

2) 恢复:
        git stash apply  (恢复内容但不删除stash,需要 git stash drop 删除)
        git stash pop    (恢复内容且删除stash)

查看远程库信息

git remote -v

更改提交协议

git remote set-url origin git@github.com:mg-mo/learngit.git

多人协作

1) 创建远程分支到本地
    git checkout -b dev origin/dev

在远程分支提交失败

1) 指定本地分支与远程分支链接
    git branch --set-upstream-to=origin/dev dev

2) 抓取提交
    git pull

3) 合并修改再提交
    git merge dev

打标签

引用廖雪峰老师的解释:发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。

1) git tag v1.0                                 #标签打在commit 上

2) git tag v0.9  124cfmg                        #指定commit  id

3) git tag                                      #查看标签

4) git show v0.9                                #查看标签信息

5) git tag -a v0.1 -m "version 0.1" 111122cf    
    -a v0.1  是指定标签名
    -m "version 0.1" 是说明文字
    111122cf  是id

6) 推送标签到远程
    git push origin v1.0                        #单个提交
    git push origin --tags                      #全部提交

7) 删除远程标签
    1) 先删除本地标签
        git tag -d v0.9

    2) 删除远程标签
        git push origin :refs/tags/v0.9

 

 

 

 

 

 

 

 

 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值