git和github配置与使用

1.git与github间的配置

1.生成秘钥

ssh-keygen -t rsa -C "gitssh"

默认可以在~/.ssh目录下查看相关文件;
ssh秘钥会包含两个文件:id_rsa(生产的私钥)和id_rsa.pud(生产的公钥)两个文件;

2.复制公共秘钥

cat ~/.ssh/id_rsa.pub


登录 github-> Settings-> SSH and GPG Keys-> New SSH key 添加

3.配置连接github username和youremail:分别为自己的昵称和邮箱

git config --global user.name jhonpj
git config --global user.email [email protected]
查看配置信息
git config user.name
git config user.email

2.github的工作原理

remote远程仓库;repository本地仓库,index/Stage暂存区,workspace工作区,
在这里插入图片描述Git 属于分布式版本控制系统,而 SVN 属于集中式
集中式版本控制只有中心服务器拥有一份代码,而分布式版本控制每个人的电脑上就有一份完整的代码。

中心服务器:
中心服务器用来交换每个用户的修改,没有中心服务器也能工作,Github 就是一个中心服务器

3.本地项目上传github

1.首先在github新建仓库:下面需要使用
如果要删除仓库需要进入仓库中选settings进行删除

扫描二维码关注公众号,回复: 11370038 查看本文章

按照下面流程,一般不会出现问题,如果输入pull或者push时没有反应,很有可能是网的问题,访问github官网本来就慢;

2.将本文件夹初始化git文件夹

git init

3.将当前系统文件夹与关联远程仓库,之后的命令都是在当前文件夹下有效;

 git remote add origin [email protected]:jhonpj/test.git

fatal: 远程 origin 已经存在;

git remote -v  #查看关联远程信息
git remote rm origin #删除关联的origin远程库(用于重新关联时)  

4.往本地仓库加文件

git add files or folder  #添加需要文件或文件夹-->index暂存区      有add就有commit
git commit -m 'this is for test'  #然后把这个添加提交到本地仓库

5.拉取github并合并

git pull origin master  #拉取并合并 如果合并的不同项目会出错,使用下面命令合并  
git pull --rebase origin master 将github上仓库的文件和本地文件同步。
git pull origin master --allow-unrelated-histories  #源是origin  分支是master,然后按要求输入一些原因并保存;
  1. 文件或目录推送到远程
git push  -u origin master  #推送文件至远程
git push -u -f origin master #强制推送,并覆盖远程仓库上的文件

执行上面密码,会让你输入github的用户名和用户密码;卡住不动就是网问题;与操作无关;
在这里插入图片描述

4.本地仓库基本操作

  • 工作流
    Git 的版本库有一个称为 Stage 的暂存区以及最后的 History 版本库,History 存储所有分支信息,使用一个 HEAD 指针指向当前分支。

    git add files  #把文件的修改添加到暂存区
    git commit     #把暂存区的修改提交到当前分支,提交之后暂存区就被清空了
    #上面两句当前分支工作流程: 工作目录---->暂存区----->当前分支版本库
    git reset -- files #使用当前分支上的修改覆盖暂存区,用来撤销最后一次 git add files
    git checkout -- files #使用暂存区的修改覆盖工作目录,用来撤销本地修改
    #上面两句:当前分支版本库----> 暂存区----->工作目录(即工作分支)

    git commit -a #直接把所有文件的修改添加到暂存区然后执行提交
    #工作目录分支------>分支版本库
    git checkout HEAD -- files #取出最后一次修改,可以用来进行回滚操作
    #分支版本库------->工作目录分支

分支操作

git status               #查看状态,如目前在哪个分支上
git branch a             #创建分支 a
git checkout a           #跳转到 a 分支
git checkout -b dev      # 创建dev分支并跳转
git branch -m a  b       #重命名分支a为b
git branch  -d b        #删除 b 分支
#删除分支的信息还在
git branch -a            #查看远程分支
git branch               #查看本地分支
git merge  a             #将 a 分支合并到当前分之

冲突
当两个分支都对同一个文件的同一行进行了修改,在分支合并时就会产生冲突;

存储
在一个分支上操作之后,如果还没有将修改提交到分支上,此时进行切换分支,那么另一个分支上也能看到新的修改。这是因为所有分支都共用一个工作区的缘故。

git stash
#将当前分支的修改储藏起来,此时当前工作区的所有修改都会被存到栈中,也就是说当前工作区是干净的

5.使用实例

从上往下:

git init
echo "111111" >readme 
git add readme
git commit -m 'readme第一次提交'
git status  #查看是否还有文件未提交
echo "2222222" >readme 
git status     #查看结果
git diff readme.txt      #查看文件到底哪里被修改了
git log    #显示从最近到最远提交的记录
git log --pretty=oneline  #简短显示
git reset --hard HEAD^   #回退到上个版本
git reset --hard HEAD~100 #回退到前100个版本
git log          #来查看历史记录信息,发现最新的没有了;
git reflog       #获取历史提交版本号;这时候commit -m注释就很重要了
git reset --hard  版本号(f261a37 )     #恢复到指定版本提交

在这里插入图片描述

看的再多也没有用,只要不用就会忘记,只不过到时候用时,再学能更容易点吧;
任何学到的东西都要应用到实践中,光学不练,假把式!

https://www.jianshu.com/p/c9dac3c8b4d2

猜你喜欢

转载自blog.csdn.net/qq_42698422/article/details/106956559