git的常用指令

103 阅读4分钟

git的状态及命令

什么是git

git是一个 ''开源'' 的 分布式 版本控制系统,最先进 最流行 高效的处理从大到小的项目版本管理。

git的状态

已修改
modified   //已修改文件但是还没有添加到暂存区
暂存区
staged  //添加到暂存区,在下一次添加git仓库列表中
已提交到git仓库
commited   //文件已在git仓库中

git命令

初始化一个项目
git init 
添加到暂存区
git add 文件名  //添加单条文件
​
git add .     //添加全部修改文件
取消暂存区文件

从暂存区移除文件

git reset HEAD -- 要移除文件名
跳过暂存区直接添加到本地仓库
git commit -a -m '描述信息'
从git仓库中移除同时工作区也移除文件
git  rem -f 文件名字
从git仓库中移除但是工作区保留文件
git rm --cached 文件名字

一般我们总会有些文件无需纳入git的管理,也不需要它们总出现在未跟踪文件列表 这种情况下 我们创建一个名为.gitignore的配置文件

该文件中的配置只能影响哪些当前还未交由git来管理的文件

# 开头注释
/结尾  的是目录
/开头 防止递归
!开头 取反
#忽略所有的.a 文件
.a
#跟踪所有的lib.a文件即使在前面忽略了.a文件
!lib.a
#只忽略当前目录下的TODO文件 而不忽略 stu/TODO
/TODO
#忽略任何目录下bulid的文件夹
bulid/
查看提交历史
#所有发提交历史
git log
#只展示最新的两条信息
git log -
回退到指定版本
版本
git reset --hard 版本的id

什么是开源

开发源代码,代码是公开的,任何人都可以去查看,修改和使用开源代码

5种

  • BSD

  • Apache Licence

  • GPL Linux

  • LGPL

  • MIT

    • 目前限制最少的协议,唯一的条件 在修改后的代码和发行包中,必须包含原作者的许可信息
    • jquery node.js

基于HTTPS将本地仓库上传到GitHub

#将本地仓库和远程仓库进行关联, 并把远程仓库命名为origin
git remote add origin https://github.com/xinglovepeng2019/jxxproject_01.git
#将本地仓库的内容推送到远程的origin仓库中
git push -u origin master

//如果已经推送过 再次推送  git push

基于SSH将本地仓库上传到GitHub

作用:SSH 本地仓库和GitHub之间免登录的加密数据传输

好处:免登录 数据加密传输

SSH 由两部分组成

  • id_rsa 私钥文件 存放于客户端电脑中
  • id_rsa_pub 公钥文件 需要配置到GitHub中

生成SSH key

  • 打开 Git Bash

  • 命令 连续敲3次回车 在C:\users\用户文件夹 .ssh 目录中生成 id_rsa 和id_rsa.pub

    ssh-keygen -t rsa -b 4096 -C "1219059585@qq.com"
    

配置SSH key

  • 记事本打开 id_rsa_pub,复制里面内容
  • 浏览器打开GitHub登陆,点击头像--》settings-》SSH and GPG keys-》New SSH key
  • 将 id_rsa_pub文件中的内容,粘贴到key对应的文本框里
  • title文本框任意填写名称,来标识key从何而来

检测GitHub的SSH key是否配置成功

git clone 远程仓库地址
查看分支列表
git branch  //表示当前所处分支
创建新分支
git branch  要创建的名称
切换分支
git checkout 切换的分支名称
快速创建和切换的分支
#-b创建一个新的分支 checkout切换到刚刚创建的分支
git checkout -b  分支名称

合并分支

功能分支的代码开发测试完毕之后,将完成的代码合并到master分支上

#切换到master分支
git checkout master
#在master分支上运行git merge 命令将分支合并到master分支

删除分支

切换的想要删除的分支名称上

git branch -d 分支名称   //-D 强制删除
分支合并遇到冲突

如果在两个不同的分支中,对同一个文件进行了不同的修改,Git就没法干净的合并它们,我们需要打开这些包含冲突的文件然后手动解决冲突

将本地分支推送到远程仓库

如果第一次将本地分支推送到远程仓库

#将本地仓库和远程仓库进行关联,并把远程仓库命名origin
git remote add origin 远程仓库的地址https://github.com/xinglovepeng2019/jxxproject_01.
git

#将本地仓库的内容推送到远程的origin仓库中
git push -u origin master

//第一次推送分支需要 -u 参数,后面可以直接使用 git push 推送代码到远程分支

查看远程仓库中的所有分支列表
git remote show 远射程仓库名称origin
拉取远程分支的最新代码
git pull