github 操作

一.创建版本库

  1. 创建或选择一个文件夹,作为本地的版本库。(pwd命令查看当前目录)
  2. git init 命令将选择的目录变成本地仓库。
  3. 添加文件到仓库分为两个步骤:
    git add . 点是把文件夹里面的所有文件都加载进来
    git add(文件),可多次使用或者一次添加多个文件。
    git commit -m “所添加文件的附属信息”。

  4. 修改文件后,可以用git status查看被修改的文件,可用git diff查看修改的具体内容

  5. 修改文件后提交的过程与新建文件提交的过程一致,分别使用git add和git commit命令。

二.版本控制

  1. 查看提交版本的历史记录使用git log命令,git log - -pretty=oneline查看简化版的历史记录,只显示版本号(commit id)。在git中使用head表示当前版本,上一个版本表示为head^,上上一个版本为head^^,一次类推,当版本次数过多时可以使用head~n,能代表可回退版本的次数。
  2. 回退到上一版本使用 git reset - -hard HEAD^命令
  3. 如果回退版本之后,想回到先前的版本,可以使用git reflog命令查看你的每一次命令,获取到先前版本的版本号,用git reset - -hard 版本号 到达先前的版本。
  4. 工作区和暂存区:
    示例图
    • 第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
    • 第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
    • 假设修改了两次,第一次通过git add命令添加到了缓存区,而第二次修改后,什么也不执行,然后执行git commit命令,此时只会把第一次修改添加到当前分支。所以Git是如何跟踪修改的,每次修改,如果不add到暂存区,那就不会加入到commit中。
  5. 撤销工作区的修改内容,使用git checkout - - 文件名,撤销缓存区的修改内容,使用git reset HEAD 文件名
  6. 删除文件
    • 当确实要删除某个文件时,使用git rm 文件名,并且git commit,此时,该文件会在版本库中被删除。
    • 当工作区的文件被误删时,可以使用git checkout - -文件名,将版本库里的版本替换工作区的版本。

三.远程仓库

  1. ssh:
    首先查看自己电脑上是否有了git的ssh密钥,windows下查看C:\Users\Administrator.ssh此路径下是否有id_rsa和id_rsa.pub。rd_rsa称为私钥文件,id_rsa.pub称为公钥文件。如果没有此文件夹,则执行ssh-keygen -t rsa -C “youremail@example.com”此命令,会在C:\Users\Administrator.ssh路径下得到这两个文件,然后将公钥添加到github的账号上。
  2. 添加和删除远程仓库:
    • git remote add origin git@github.com:(github账号)/(项目名), origin为远程仓库名。
    • 要查看远程库的信息,使用git remote命令,或者使用git remote -v显示更详细的信息。
    • 删除远程仓库:使用git remote rm 仓库名
    • 重命名远程仓库:git remote rename <原仓库名> <新仓库名>
  3. 推送内容:
    • 当远程仓库为空时即第一次提交时,可以使用git push - u origin master,可以理解为利用git push 命令将本地的master分支推送到远程的origin仓库。加上-u参数Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
    • 当下次提交时可以直接使用git push origin master
  4. 克隆远程仓库
    使用git clone git@github.com:(github账号)/(项目名)或者使用git clone https://github.com/(github账号)/(项目名)

四.分支管理

  1. 常用命令
    查看所有分支: git branch
    创建分支:git branch 分支名
    切换分支:git checkout分支名
    创建加切换分支: git branch -b分支名
    合并某分支到当前分支: git merge分支名
    删除分支:git branch -d 分支名

  2. 解决冲突
    当两个分支同时对文件的某一处进行修改时,需要手动解决冲突,当执行git merge 文件名命令时,会出现冲突提示,保留自己所想保留的代码,然后提交。

  3. 多人协作
    假设远程仓库有两个分支master和dev,使用git clone git@github.com:(github账号)/(项目名)或者使用git clone https://github.com/(github账号)/(项目名)将远程仓库克隆到本地,默认情况下,只能看到本地的master分支。如果要在dev分支上开发,就必须创建远程origin的dev分支到本地,需要使用命令的命令为:git checkout -b dev origin/dev,当有两个以上的人在dev分支上的同一处做了修改后,会无法推送,此时提示需要先拉取远程仓库,但输入拉取操作时,也会出现错误,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置dev和origin/dev的链接:git branch - -set-upstream dev origin/dev,执行完此命令后就可以拉取,然后修改冲突,最后提交,提交使用的命令为git push origin 分支名

五.遇到的问题

  1. 当执行push时
error: failed to push some refs to 'git@github.com:mtgnorton/gadmin.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.

执行git status提示

Unmerged paths:
  (use "git add/rm <file>..." as appropriate to mark resolution)

        deleted by them: Application/Common/Conf/config.php

执行

git rm  Application/Common/Conf/config.php

提示执行pull,此时提示

error: You have not concluded your merge (MERGE_HEAD exists).
hint: Please, commit your changes before merging.
fatal: Exiting because of unfinished merge.

```
git merge --abort
git reset --merge
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值