git命令使用

2018-4-4 12:02:31 星期三 

git常用操作流程简介:

如果本地有一个文件被修改了, 

一, 如果我们希望保存这个更改, 那就执行命令: git add, 就会把修改后的整个文件拷贝压缩存储起来(即生成快照), 它存储到了本地的”暂存区”

二, 如果我们确定这个修改没问题了, 希望保存为项目的一部分, 那就执行git commit 命令, 就会保存到本地分支上去, 这一步会生成一系列对象,

  这些对象保存的信息有:

  1. 因为源文件被修改而生成的备份文件;

  2. 当前项目或分支中所有最新文件的链接(以树形存储, 区分他们的层级关系),

  3. 提交者的信息, 注释信息, 以及上一个提交保存的信息的地址等

三, 如果我们希望我的修改被其他同事知道, 就执行git push命令, 把本地更改的信息推送到远程版本库, 跟它合并

 

概念:

Tag:  git 每一次提交都会生成一个40位hash的哈希值, 它关联了一个当时项目所有最新文件的连接, 因为这个hash值不好记, 所以可以用tag 命令生成一个好记得名字, 因此一个tag名对应一个commit

分支:  分支就是指向某一次commit的链接/指针, 分支名就是指针的名字

  比如你以master分支为蓝本创建一个分支dev, 那这个dev里的所有文件地址其实都是指向master里的文件,

  然后你对其中的某些文件进行修改, 修改后, 如果执行的commit命令, 那么会把这些被修改的文件生成一个副本, 它保存了修改后的最终内容, 但master里的这个文件还原来的文件内容, 而dev中没有被修改的文件依旧指向master中的对应文件 (可以理解为写时复制)

  现在dev就不再指向master对应的那一堆文件了, 而是指向了包裹了新生成的备份文件和没有修改的文件的链接(注意不是文件内容而是它的链接)

快速合并:  如果dev分支包含了最新的内容, master只是他的一个子集, 那么快速合并, 就是简单的将master指针指向dev指针

参考: 

git基础概念

git分支

git快照

 

2015-07-15 11:59:11

全局设置

git config –global user.name “username” //用户名

git config –global user.email email //邮箱

git config –global credential.helper store  //记住密码

git config –list //查看配置信息

ssh-keygen -t rsa -C “abc@efg.com” // -C 注释

git pull : 相当于 SVN up

git status : 相当于 SVN st

git add a.txt: 新添加文件 或者 将文件修改保存到索引中, 和SVN add的作用一样

git checkout — a.txt : 忽略本地对a.txt的更改, 将其改回之前的版本 (注意两个减号)

git commit a.txt : 提交到本地存储

git push : 提交到远程版本库中, 相当于 SVN ci

 

查看本地分支: git branch

查看远程分支: git branch -r

查看本地和远程分支: git branch -a

 

删除本地分支: git branch -D <branchName>

删除远程分支: 

    方法一: git push origin –delete <branchName>

    方法二: git push origin :<branchName>

 

本地新建了分支, 需要同步到远程版本库中, 让其它小伙伴看到

git push origin 本地分支名:远程分支名

 

从远程检出分支到本地作为新的本地分支

git checkout -b 本地分支名 origin/远程分支名

 

pull强制覆盖本地改变

git fetch –all

git reset –hard origin/master

 

设置本地分支与远程分支关联

git branch –set-upstream debug origin/debug (已废弃)

git branch –track origin/serverfix

 

git push –set-upstream debug origin/debug  (推送到远程, 并跟踪, 没有就创建)

git checkout –track origin/branch_name (从远程拉下来, 在本地新建分支, 并跟踪) (参考)

 

 

设置存储密码

[credential]
helper = store –file /mnt/thumbdrive/.git-credentials
helper = cache –timeout 30000

 

查看日志:

git log –pretty=oneline (单行查看日志)

 

查看敲过的命令

git reflog

 

对比当前工作区与上一个版本的差异

git diff –name-status HEAD~1

输出举例:

A       aa
M       test.log.bak
D       test1.log.bak

 

git clone 直接带上用户名密码:

git clone http://username:password@remote

 

git reset HEAD  //把暂存区的改动都撤回到工作区

git checkout . //把工作区的改动都撤销, 使代码变为改动之前的

 

git reflog show –date=iso master 查看master分支的各种事件的时间

git diff cc3bdd82 b359916f –stat  统计两次提交之间的文件变化

 

##在有文件的目录中初始化git仓库, 并与远程仓库合并

参考

#git init

#git add .

#git commit -m “init” 

#git remote add origin  git@git.xxxxxx 

#git pull origin master –allow-unrelated-histories

#git push –set-upstream origin

    原文作者:myD
    原文地址: https://www.cnblogs.com/iLoveMyD/p/4648026.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞