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

具体做法,有机会再更

posted @ 2019-11-09 09:09  virgil_devil  阅读(233)  评论(0编辑  收藏  举报