Git的使用

集中式版本控制工具SVN:大家协同工作但是用的是同一个服务器,一旦出了问题所有人都不能提交更新。历史记录存放位置单一,出现问题可能面临版本丢失的问题

分布式版本控制工具GIT:客户端存的是原始代码的完整镜像,存储到本地,每个客户端的代码仓库都是一样的,任何部分代码出现问题,可以使用其他客户端代码进行修复。
Git的使用:
1、git下载
2、新建一个文件夹myProject,在文件夹下右键,点击“Git Bash Here”,会在当前文件夹下-面打开Git Bash Here
3、$ git init  //初始化本地的代码,形成一个代码仓库;git是一个隐藏文件,里面存放了本地仓库的一些版本信息。本地仓库搭建好可以在里面写项目
4、远程仓库Github;
有一个github账号,进入首页,点击右上角”+“,选择New repository新建一个远程仓库;
5、远程仓库与本地仓库进行关联
5.1、通过秘钥认证:通过ssh-Keygen进行认证,
生成SSH秘钥:$ ssh-keygen  //生成一对rsa密钥;据输出提示,打开存储密钥的文件夹,打开id_rsa.pub(公钥)文件复制内容。在github上添加秘钥:点击头像->setting->SSH and GPG keys ->new SSH key,自定义title,粘贴内容即可。
5.2、$ git config --global user.name 'zjingqi'
        $ git config --global user.email 邮箱
配置完通过 $ git config --list进行查看
5.3 、在远程仓库页面点击Clone or download复制地址(如:https://github.com/zjingqi/FrontEndStudy.git
$ git remote add  [name ] [url]   url里面为刚复制的远程地址,命名为name。//本地仓库与远程仓库进行联系,本地仓库的东西可以放到远程仓库当中
此后就可以使用Git了

5.4、本地分支与远程分支关联

git branch --set-upstream-to=origin/remote_branch  your_branch

origin/remote_branch是你本地分支对应的远程分支;your_branch是你当前的本地分支。

 

---------------------------------------------------------------------------------------------
一,
1.、$ git remote -v   //查看与哪个远程仓库相关联,与本地的相对应;
2、$ git remote  //查看远程仓库的名字
3、$ git remote [name]  // 添加源仓库地址为远程仓库
4、$ git remote rename [oldName] [newName]  //远程仓库重命名
二,
Git工作区的文件状态
本地工作区,暂存区,本地仓库。
在vsCode中打开此文件夹myProject
1、把文件添加到暂存区$ git add [projectName]
2、把暂存区文件提交到本地仓库:$ git commit -m ' description of changes'//每次提交相当于一次改版。
3、 $ git log //打印出当前的操作
4、$ git status //表示当前文件的状态(只在工作区更改,添加到了暂存区,同步到本地仓库)
5、花式撤销-本地版本库回退
5.1、撤销工作区修改
  $ git checkout -- index.css//能让文件回退到与本地仓库/暂存区相同的版本
5.2、暂存区文件撤销(不覆盖工作区)
 $ git reset HEAD^1版本回退//回到git add 之前
5.3、版本回退:
git reset --(soft | mixed | hard ) <HEAD~ (num)> | <commit ID>
1、   $ git reset --hard HEAD~1 //回到上一个状态上 一次提交到缓存和本地的都撤销掉了。~n回退n个版本
2、   $ git reset --soft HEAD~1 //回到了commit之前的状态
3、   $git reset --mixed HEAD^ // 回到add之前
6、  $ git log //显示操作记录
6.1、 $ git reflog //明确显示历史每一步都干了什么
7、$ git diff //工作区和暂存区中的差别
7.1、 $ git diff --cached //比较暂存区与本地版本库中最近一次Commit的内容
7.2 、$ git diff HEAD //比较工作区与本地版本库中最近一次commit的内容
7.3 、$ git diff <commit ID><commit ID>//比较两个commit之间的差异
8 、$ git push <远程主机名> <本地分支名> <远程分支名>;如:$ git push origin master : master
简写: $ git push origin master;
           $ git pull origin [name] : [name] //远程的分支拉到本地分支
9、分支:每个分支都是一样的
   $ git branch   查看当前文件分支
   $ git branch [name] 添加分支
   $ git branch -d [name] 删除分支
   $ git checkout [name] 切换分支
   $ git checkout -b [name] 创建并进入此分支
10、分支合并
git merge [branch] 

11、合并分支到master

1.在自己分支 先提交代码到本地仓库(最好push到远程)

2.git checkout master      //切到master分支

3.git pull origin master     //取回远程主机某个分支的更新,再与本地的指定分支合并

4.git merge zhangjingqi    //合并分支

5.git status    //查看状态 解决完冲突 再git add .  git commit -m ' ')

6.git push origin master

第三步遇到问题error: Merging is not possible because you have unmerged files.

解决:先 git add .

                git commit -m ' ';

                再merge
补充

 

一般操作流程:

                         git add [projectName]

                         git commit -m 'message'

                         git pull origin master

                         git push origin master


2.1. $ git add .   //添加当前文件夹的所有文件

8.1  push时遇到报错:

To https://github.com/zjingqi/FrontEndStudy.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/zjingqi/FrontEndStudy.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.

此时如果origin的master分支上有一些本地没有的提交,push会失败.

  所以解决的办法是, 首先设定本地master的上游分支:

  git branch --set-upstream-to=origin/master

  然后pull:
  git pull --rebase

  最后再push:

  git push

3. 当pull和push时遇到‘xx. fatal: unable to access 'https://github......time out   443' 问题时我是用重新配置了一遍,从密钥认证       开始,然而并没有执行完,git不能输入了,此时我重新打开git,$git status查看状态,提示我git push,我就输入git  push       期间要输入github账户密码,这次就成了。

4.生成SSH秘钥的作用:

ssh是加密传输。rsa要解决的一个核心问题是,如何使用一对特定的数字,使其中一个数字可以用来加密,而另外一个数字可以用来解密。这两个数字就是你在使用git和github的时候所遇到的public key也就是公钥以及private key私钥。

其中,公钥就是那个用来加密的数字,这也就是为什么你在本机生成了公钥之后,要上传到github的原因。从github发回来的,用那公钥加密过的数据,可以用你本地的私钥来还原。(摘自网上)

**有什么错误的操作欢迎纠正**

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值