提交和推送的区别

提交(commit):把您做的修改,保存到本地仓库中
推送(push):把您本地仓库的代码推送至服务器(一般是远程服务器及gitlab或github)

拉取和获取的区别

git  pull     从远程拉取最新版本 到本地  自动合并 merge   
        不带分支地址默认拉取所在分支的代码,正常:git pull origin master
git  fetch   从远程获取最新版本 到本地   不会自动合并 merge 正常操作如下: 
        git fetch  origin master      
        git log  -p master ../origin/master    
        git merge orgin/master

分支和合并

git branch  XXX   创建分支(代码会从master复制过来)   
git checkout XXX 切换分支(代码也会切换成XXX的代码。
           如果xxx分支代码有后续提交过和mster不一样,这时就全不一样了,
           不会合并哦,别搞错,跟master代码没关系)
git merge XXX 合并XXX分支(假如你现在master,这时master就合并了XXX分支
的代码,XXX分支代码还是原来的代码)

合并代码有两种方案:

1.主分支合并xxx分支
 git fetch origin xxx
git log -p master..origin/xxx
git merge origin/xxx
首先你必须在master分支上,如果你在ccc分支上,那就是ccc分支合并xxx分支的代码【gitlab上合并到主分支可以申请】,merge是合并了代码和提交路径等等
2.拉取的方法
git pull xxx 拉取xxx的代码过来,并合并
区别:git pull = git fetch + git merge

拉取线上代码,覆盖本地已改的代码或恢复误删文件,及恢复线上版本

git fetch  或者 git fetch --all
git reset --hard XXX 例如:git reset --hard branch_y (然后git pull 可以更新线上代码,避免冲突)

版本回退

1.假设有2个提交记录

commit def5adef853da4cc05752bdb36577c127be71ba5

Author: 132982jianan <1072772483@qq.com>
Date:   Thu Dec 28 16:01:36 2017 +0800

add data to 1.txt

commit f36801544670e00b2f59a28e19017d2786c4085e
Author: 132982jianan <1072772483@qq.com>
Date:   Thu Dec 28 15:59:46 2017 +0800

init 1.txt
(END)

2.现在回到最开始的那一个提交
git reset --hard f36801544670e00b2f59a28e19017d2786c4085e

3.查看日志,就会发现只剩下一个提交了
git log

commit f36801544670e00b2f59a28e19017d2786c4085e
Author: 132982jianan <1072772483@qq.com>
Date:   Thu Dec 28 15:59:46 2017 +0800

init 1.txt
(END)

4.这个时候,发现回退版本错了,那么就用git reflog查看提交记录
git reflog

f368015 HEAD@{0}: reset: moving to f36801544670e00b2f59a28e19017d2786c4085e
def5ade HEAD@{1}: reset: moving to def5ade
f368015 HEAD@{2}: reset: moving to f36801544670e00b2f59a28e19017d2786c4085e
def5ade HEAD@{3}: commit: add data to 1.txt
f368015 HEAD@{4}: commit (initial): init 1.txt

5.找出想要回退的版本,进行回退

恢复
git reset --hard def5ade

在工作目录中初始化新仓库

要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行:

$ git init

从现有仓库克隆

克隆仓库的命令格式为 git clone [url]
$ git clone git://github.com/schacon/grit.git

git 从远程仓库获取所有分支

git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all

git添加忽略或删除

window 右键git里添加忽略

  

linux :

  vi   .gitignore 

    写入你要忽略的文件或文件夹 

git保留账号密码

在项目目录里(及git clone下来的项目的里面)

  vi .git/config

然后添加

  [credential]
    helper = store

接着

  git pull

输入用户名、密码自动保存

git逻辑和基本命令的更多相关文章

  1. Git的基本命令介绍

    Git的安装 进入官网下载系统所需要的版本  官网地址:https://git-scm.com/downloads 点击下载按钮官方网站一般会根据操作系统的自动下载所需要的Git版本. 下载完成后,点 ...

  2. Git使用- 基本命令

    $ git config --global user.name "Your Name"   全局 name 设置 $ git config --global user.email ...

  3. Git Shell 基本命令(官网脱水版)

    用户信息 当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址. 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改: $ git conf ...

  4. git 的基本命令

    ...git init ...git add ...git commit -m "first commit" ...git remote add origin https://gi ...

  5. Git: 一些基本命令

    1.快速获取远程项目 1) git clone xxx.git // 如:git clone git://git.kernel.org/pub/scm/git/git.git 2) git clone ...

  6. 【Git】基本命令使用

    init: 1 git init 添加远程分支: 1 git remote add <远程主机名>  <远程主机地址url> 例如:git remote add origin  ...

  7. Git之基本命令

    先介绍一下Git: Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理.在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中.目前, ...

  8. 关于git的基本命令

    git环境的搭建这里就先不说.本篇主要是普通开发工作者在开发过程中所使用的命令. 作为开发者,别人搭建git服务器之后,你呢就配置个人的客户端: 设置Git的配置变量,这个是一次性的工作.即这些设置会 ...

  9. Git操作基本命令

    分支开发原则: 如果本地dev分支有修改,则需要先切换到master分支,把本地分支的修改merge回master(git merge dev),然后在master上把合并后的内容push到maste ...

随机推荐

  1. UE4命令行使用,解释

    命令行在外部 从命令行运行编辑项目 1 导航到您的[LauncherInstall][VersionNumber]\Engine\Binaries\Win64 目录中. 2 右键单击上 UE4Edit ...

  2. centos 7.2 下 nginx 1.14.1 安装部署

    Nginx1.14.1安装部署 1.环境: 所有源码在跳板机kx的/web/soft下 2.安装依赖: [root@bogon src]# yum install -y libxml2 openssl ...

  3. 解锁技能:sass + node-sass多页面应用编译(转载)

    传送门:https://blog.csdn.net/wx11408115/article/details/78023466

  4. 干掉windows无脑设定:“始终使用选择的程序打开这种文件”、“使用Web服务查找正确的程序”

    先看几张图体会一下: 实在很佩服自己就那样默默忍受了很多很多年.其实这些东西在网上小小的一搜,5分钟就能搞定. 然而我们大家都在想,现在没时间,我还要做xxxx事呢,反正多点两下鼠标而已. 是啊,点两 ...

  5. Java基础 -- String,StringBuilder,StringBuffer三者的区别

    结论 1-String,StringBuilder,StringBuffer 之间的区别主要是在两个方面,即运行速度和线程安全这两方面: 首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:St ...

  6. Python中字符串二三事

    首先说两个运算符: " == " 运算符测试值的等价性,递归地比较所有内嵌对象 " is " 表达式测试对象的同一性,测试两者是否为同一对象(是否为同一地址) ...

  7. 算法——八皇后问题(eight queen puzzle)之回溯法求解

    八皇后谜题是经典的一个问题,其解法一共有种! 其定义: 首先定义一个8*8的棋盘 我们有八个皇后在手里,目的是把八个都放在棋盘中 位于皇后的水平和垂直方向的棋格不能有其他皇后 位于皇后的斜对角线上的棋 ...

  8. 一丶HTML介绍

    import socket def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(('local ...

  9. MySQL查看所有连接的客户端ip

    ) AS host_name,state,count(*) FROM information_schema.processlist GROUP BY state,host_name;

  10. FreeRTOS 启动进程调度后,程序卡死的部分原因分析。

    现象:1,RTOS  使用时 系统卡启动文件               B       .处. 原因分析:该种情况是由于定义开启了中断,但是未开启中断处理服务.程序执行到中断响应式无对应的程序响应 ...