zoukankan      html  css  js  c++  java
  • github常用操作

    github

    官方文档

    概念的理解

    github库/远程仓库 github官网上的数据

    本地库 本地文件夹上存放的数据

    分支 一个github库可以有多个仓库,每个仓库可以有多个分支, 但是,每个仓库都有一个master分支

    master分支 master分支存放的是稳定版本的代码,一般来说,如果要进行新功能的开发,要新建一个分支,然后在此分支上再进行开发

    push 本地库->github库

    pull github->本地库

    git status

    可查看

    • 当前分支
    • 新add加入暂存区的文件

    git add

    把文件添加进暂存区,也就是以后git会跟进该文件的状态(没有添加进来的就忽视掉)

    注意

    • add 必须在.git目录下出发来寻找路径,而不能cd到那个目录去添加

    git add [basename1] (basename2) ...

    可以一次添加一个或多个文件

    git add [dirname]/.

    添加dirname文件夹下的所有文件,包含其子目录的所有文件

    git reset HEAD

    返回上一次使用add的状态

    git reset HEAD [filename]

    filename:要取消暂存的文件名(dirname/basename)

    git rm --cached [filename]

    与 git reset HEAD [filename] 一样,取消该文件的暂存

    git remote

    git remote add [alias] [addr]

    alias : 自定义的仓库别名

    addr: 仓库clone时使用的地址

    git remote -v

    显示当前所有关联的仓库及其别名

    git remote rm [alias]

    alias :仓库别名

    git push

    git push -u [alias] [branch]

    第一次提交时要加上参数-u

    git push [alias] [branch]

    关联之后提交就不用加-u

    git push -u [alias] [branch] -f

    强制清空远程仓库的所有文件,并重新上传

    git fetch

    git fetch [alias]

    抓取本地仓库没有,而远程仓库有的信息

    fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并

    git pull

    git pull [alias]

    相当于fetch 再加一个合并的操作(可能会产生冲突)

    git reset

    git reset HEAD

    上一次add 的内容撤销

    git reset --hard HEAD(不推荐)

    撤销全部内容,包括remote add关联的远程地址

    git commit

    git commit -m "[comment]"

    comment: 注释

    git commit --amend

    撤销最后一次提交

    git branch

    git branch [branch]

    branch : 分支的名字

    创建一个新的分支

    git branch -d [branch]

    删除一个分支

    git checkout

    git checkout [branch]

    切换到 branch 分支

    branch : 分支的名字

    切换到分支上

    git checkout [filename]

    撤销文件的修改,也就是该文件会回到上一次commit时的状态

    commit之后,如果你马上在main.c中添加了一行代码,然后马上调用上述语句,那么这行代码就会消失

    git checkout .

    工作区的所有代码都回到上一次commit时的状态

    更多撤销更改的操作

    参考

    git merge

    git merge [branch]

    branch: 分支的名字

    合并之前,先通过git checkout [branch] 命令切换到要被合并的分支处

    这里有必要说明一下, git checkout 的分支叫做当前分支; git merge 后接的分支叫做子分支

    把子分支合并到当前分支上,子分支不会消失

    合并完成后可以使用 git branch -d [branch] 删掉子分支

    分支的合并及解决

    搭建github环境

    目前 github只支持火狐,谷歌浏览器

    菜鸟教程

    初始化配置github

    初始化配置github2

    SSH KEY 操作步骤

    permission denied 解决办法

    自己总结一下:

    1. 先在本地与github服务器完成认证

      其实就是在本地生成一串秘钥(就相当于密码),然后服务器那里也设置同样的密码,这样就能进行匹配,从而连接上服务器

      ssh-keygen -t rsa -C "your_email@youremail.com" //生成秘钥,会得到一串字符
      
      //然后打开github服务器,添加SSH KEYS 把这个秘钥添加进去
      ssh -T git@github.com //验证是否成功
      
      //登录你的账户
      git config --global user.name "your name"
      git config --global user.email "your_email@youremail.com"
      
      //添加本地仓库
      git remote add origin git@github.com:yourName/yourRepo.git
      

    需要三次步骤才会真正更新服务器的数据

    add commit push

    add 是刚创建本地仓库的时候才需要使用的命令

    commit 本地仓库被修改过后,更新数据库(记录着仓库文件改动的信息),commit一般需要添加此次修改的备注

    push 根据数据库的信息,服务器做出相应的更新,这时,网络上的数据才会被真正修改

    1571979742439

    push的逆操作--pull

    将服务器的数据同步到本地(和clone比较类似)

    其他常用命令

    git init   会在当前目录创建一个.git隐藏文件,里面会记录着这个文件的git信息
    git commit -m ""
    git status
    git log
    git reglog   查看版本号
    git reset --hard  版本号
    
    操作远程仓库
    git remote add test 仓库地址
    git push -u test master  用于第一次推送并关联该仓库
    git clone 仓库地址
    
    git remote -v 查看已经关联的仓库及其别名
    git remote rm 仓库别名
    

    解决冲突

    方法1(不推荐):

    参考

    强制把本地内容更新到服务器

    git push -u origin master -f //服务器内容会被强制清空
    

    方法2:手动一个一个文件地解决冲突,然后merge/push

    具体做法,有机会再更

  • 相关阅读:
    2016/01/13开始学习git:分支管理:创建、合并、删除分支
    2016/01/13开始学习git:远程仓库
    2016/01/13开始学习git:删除文件
    2016/01/13开始学习git:管理修改、撤销修改
    2016/01/12开始学习git:版本如何回退
    2016/01/11开始学习git:查看仓库状态和修改文件
    2016/01/11开始学习git:创建版本库后,add和commit
    2016/01/10开始学习git:安装msysgit
    Django web框架开发基础-django实现留言板功能
    Django web框架开发基础-01
  • 原文地址:https://www.cnblogs.com/virgildevil/p/11824211.html
Copyright © 2011-2022 走看看