git 的一些学习记录

git init      #初始化
git config --global user.name "mortal"
git config --global user.email "[email protected]"
git add .     #添加要提交的文件
git commit -m "initial"     #提交一个版本
git status          #目前状态
git diff         #可以比对文件

在git提交环节,存在三大部分:working tree, index file, commit

working tree:就是你所工作在的目录,每当你在代码中进行了修改,working tree的状态就改变了。

index file:是索引文件,它是连接working tree和commit的桥梁,每当我们使用git-add命令来登记后,index file的内容就改变了,此时index file 就和working tree同步了。

commit:是最后的阶段,只有commit了,我们的代码才真正进入了git仓库。我们使用git-commit就是将index file里的内容提交到commit中。

总结一下:
git diff:        #是查看working tree与index file的差别的。
git diff --cached:    #是查看index file与commit的差别的。
git diff HEAD:        #是查看working tree和commit的差别的。(你一定没有忘记,HEAD代表的是最近的一次commit的信息)

git log       #查看log
git log --pretty=oneline  #只显示一行,没有author,date
git log --graph --pretty=oneline --abbrev-commit  #图形化,易于理解
git reset --hard HEAD^      #重回上一个版本
git reset --hard HEAD^^     #重回上上个版本
git reset --hard HEAD^3     #之前第三个版本。
git reflog                    #回到过去之后回不到未来了,不怕,这里有记录
git reset --hard f8c5ef2        #返回版本f8c5ef2

于诸多文件中除去某个不想提交的文件,简洁的提交
git add .
git status
git rest HEAD filename
git commit -m "sthing"      
git checkout -- filename     #让这个文件回到最近一次git commit 或git add时代状态  命令中的-- 很重要,没有--就变成了创建一个新分支

只是修改了工作区的文件回滚:
git checkout -- .

如果已经git add  . 需要回滚:
git reset HEAD .
git checkout -- .

如果不仅添加还commit了的话。
git reset --hard HEAD^ .
git rm filename         #删除某个文件
git commit -m "remove filename"
git checkout -- filename   #git checkout 其实是用版本库里的版本替换工作区的版本。无论工作区是修改还是删除都可以“一键还原”

git checkout -b dev     #创建dev分支,并切换到dev分支
git branch                 #查看分支
git branch dev            #创建分支
git branch -d dev        #删除分支
git branch -D dev        #强制删除一个分支
git checkout dev         #切换分支
git merge dev            #合并dev分支到master

git stash                #保留一个stash
git checkout master        #切换master
git checkout -b issue-01        #创建并切换
git add filename                #修改后添加到index区
git merge --no-ff -m "merged bug fix 01"     #issue-01合并分区,修复bug
git branch -d issue-01        #删除分区
git checkout dev            #切换分区
git stash list                #查看藏匿区列表
git stash apply [email protected]{0}  #恢复stash但不删除
git stash drop [email protected]{0}   #删除stash
git stash pop               #恢复并删除
                    

某一分支点两个版本号之前的内容
git diff f1a2c3 a4c5b6 > my.diff  #比较需要注意顺序
git apply my.diff                     #恢复

git remote            
git remote -v
git push origin master        #推送master分支
git push origin dev            #推送dev分支
git clone [email protected]:michaelliao/learngit.git #克隆一个版本到本地
git branch        
git checkout -b dev origin/dev
git commit -m "sthing"    
git pull                        
git branch --set-upstream dev origin/dev
git pull
vim filenames
git commit -m "merge & fix sth"
git push origin dev

搭建git服务器
yum install git
useradd -d /homg/git git -s /usr/bin/git-shell
git init --bare admin.git
chown -R git:git admin.git
mkdir /home/git/.ssh
chown 700 /home/git/.ssh
chown 640 /home/git/.ssh/authorized_keys #我之前设置成600一直连接不上,也是找了好久,才发现要设置成640 centos5.8版本

git客户端1
git clone ssh://[email protected]:9831:/srv/admin.git
git add . 
git commit -m "test"
git remote -v
git push origin master
git log

git 客户端2
git pull ssh://[email protected]:9831:/srv/admin.git $直接拉取,这种方式会不能提交
git remote -v 
git reflog 
git fetch origin master     #从远程的origin仓库的master分支下载代码到本地的origin master
git log -p master origin/master        #比较本地仓库和远程仓库的区别
git merge origin/master                #合并分支

从网上其他地方找了一张图片来。很详细了。

时间: 2024-11-10 08:16:59

git 的一些学习记录的相关文章

xcode6 cocos2dx开玩笑git和github学习记录

1. git Xcode4开始,它一直Git作为一个内置的源代码控制(Source Control)工具,所以对于新项目的用途git要管理非常方便.在新建项目向导.可以直接选择Git作为源控制工具.项目新建向导后,就在本地项目目下新建了一个仓库. 2. 怎样为已存在的项目添加git (1)通过控制台进入项目所在文件夹,输入例如以下命令 <span style="font-size:18px;">git init </span> (2)假设你的项目存在不想提交的内

git日常使用学习记录

Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库 添加工作区所有文件到暂存区:git add -A 查看工作区与暂存区文件的不同git diff 从暂存区添加文件到本地仓库git commit -m " 提交信息"查看暂存区与本地仓库文件不同git diff --cached 从本地仓库master分支文件推送到远程仓库master 分支git push -u origin master (第一次推送时使用)g

我的git学习记录------------从廖雪峰老师网站的学习总结

这篇文章只用作自我学习,部分参考来自廖雪峰老师网站 mkdir 路径/文件名(d:/test)  创建文件夹 cd  路径/文件名(cd d:/test)  进入文件夹 pwd   显示当前所出位置的路径   确保全英路径(注意) cd 仓库(repository)文件路径       eg(cd d:/test) git init   初始化空的仓库,把这个目录变成git可以管理的仓库 编写一个readme.txt文件,内容如下: Git is a version control system

Git 教程 -- 基于自己学习记录

Git 教程 -- 基于自己学习记录 1. 引言 由于学校布置了一项熟悉 git 和 svn 操作的实验,所以自己重新温习了下 git,记录过程在这. 2. 注册登录 GitHub. 3. 选择一个仓库克隆到本地,这里以我自己的一个私人项目为例,克隆到本地. git clone https://github.com/weixuqin/love_source.git //克隆项目到本地 4. 创建dev 分支,并切换到dev分支. git checkout -b dev //创建dev分支 git

saltstack学习记录

安装 pip 安装 注意  依赖到zeromq3 minion过一段时间去请求master salt-api  可以访问salt去远程执行 ruby puppet   DSL配置   erb文件  模块  加载  模板支持最差 chef     定义直接是ruby代码   erb模板系统   原生支持 python saltstack   yaml配置文件    python程序模板   模板支持很好 python写模块 ipc 进程间通信 都使用key认证    安全 salt-key  -L

Git权威指南学习笔记(二)Git暂存区

如下图所示: 左侧为工作区,是我们的工作目录. 右侧为版本库,其中: index标记的是暂存区(stage),所处目录为.git/index,记录了文件的状态和变更信息. master标记的是master分支所代表的目录树.HEAD指向master分支. objects标记的是Git的对象库,所处目录为.git/objects,文件索引建立了文件和对象库中对象实体之间的映射关系. 通过该图我们可以清晰地看出add,commit等命令的转化关系.下面通过git diff和git status两条命

git 分布式管理系统学习

这几天在学习git,看了廖雪峰的官方网站,跟着步骤学习,还是有一些出错的点,总结并记录下一些自己遇到的问题: 1,安装git 到git官网下载并安装,很简单. 2,创建本地工作文件夹取名gitdemo 进入gitdemo文件夹,右键,gitbash窗口.输入 1 git init 这就相当于把gitdemo文件夹变成了git的版本仓库 3,添加文件到git仓库(也就是gitdemo) 1 git add read.txt //说明要提交的文件 2 git commit -m "这里是注释&quo

Springboot学习记录1--概念介绍以及环境搭建

摘要:springboot学习记录,环境搭建: 官方文档地址:https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/ 本机为Ubuntu 概念:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速

SVN教程 -- 基于自己学习记录

SVN教程 -- 基于自己学习记录 1. 概述 a. 什么是SVN? Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统.相较于 git ,svn 是集中式版本控制系统. SVN官网链接 b. 什么是集中式版本控制系统? 集中式版本控制系统可以这样理解:所有的源代码都放在统一的服务器上,开发者从服务器下载项目组的最新代码,进入自己的分支进行开发工作,提交代码,最后再把自己的分支合并到服务器主分支上,更新服务器源代码.由于源代码最后都是放在服务器上的,服务器统