git基础入门笔记

1.git的下载和安装(安装在centos上)

下载:http://www.linuxfromscratch.org/blfs/view/svn/general/git.html

安装:http://blog.51cto.com/13505030/2055144

备注:基于centos的安装

[root@Git ~]# cd git-2.7.3

[root@Git ~]# make configure

[root@Git ~]# ./configure –prefix=/usr/git ##配置目录

[root@Git ~]# make profix=/usr/git

[root@Git ~]# make install

添加环境变量 :在/etc/profile文件中添加export PATH=$PATH:路径

然后使用source /etc/profile保存,然后输入git会显示git相应的命令

设置全局的邮箱和名称(不需要设置为全局可以省略global),假如不设置邮箱和名字,git commit的时候会相应的提示你去添加。

git config –global user.email you@example.com

git config –global user.name “Your Name”

2. git的基本使用

git  init:仓库的初始化,产生一个.git文件目录,用于跟踪版本管理。(一般情况下不要使用windows默认的记事本,建议使用notepad),默认是.git,可以git  init  文件夹/文件名:在相应的文件夹下产生一个名称.git的文件夹,git init –bare 文件夹:产生一个裸仓库

git  add  文件名1 文件名2…:添加一个或者多个文件到暂存区,为git  commit做准备

git commit  –m  “信息” : 将暂存区的内容添加到本地仓库版本管理,信息表示备注,-m建议需写。

git  status:查看仓库当前的状态

《git基础入门笔记》

git  diff  file :比较修改的内容,遵循unix的diff格式(git管理的是修改,而不是文件)

git diff HEAD — file :比较当前的版本库中的最新的版本与工作区file的区别

《git基础入门笔记》

git  log:查看历史日志,由近到远,由当前版本开始,使用时光机到历史版本后看不到未来的版本

《git基础入门笔记》

备注:commit 后面的字符表示id,Author 我们设置的作者和邮箱

git  reflog:查看所有的版本提交记录,用于版本穿越到过去和未来的参考以及一些其余的信息

get reset  –hard  版本:  用于版本的穿越(过去和未来),HEAD^ 表示前一个版本 ,HEAD^^ 表示前两个版本,多个版本可以使用HEAD~n 表示 n表示整数,HEAD表示当前版本,回到未来版本需要使用commitid

文件的删除:先使用rm删除当前相应的文件,然后使用git rm 文件名,然后使用 git commit -m “信息”提交。

git  checkout  –文件名 :清空当前修改(回到未修改前的版本),有两种情况,一种是没有存放到暂存区,那么回到的版本与版本库的最新版本一致 ,另一种是添加到了暂存区,那么会相应的返回到暂存区的版本。

git  reset  HEAD  file:将暂存区的该文件相应的去除

备注:推送到远程仓库后是不可以更改的,例如版本的撤销

git config –global 变量名 变量值:修改git的全局配置 

git config –global alias.别名   被别名的名称  :配置别名

3.gitbisect检查错误

这个命令可以使用二分法查看某个分支从何处开始变坏的,在bug没有引入之前和bug引入之后选取两个提交点, 例如:判断某一个文件中是否有aaa(坏点),可以使用grep  “aaa”  文件名,假如是坏点,那么使用 git  bisect start ,git bisert  bad标记为坏的点,然后假设某个提交点是好的点, 那么使用git bisert good标记好的好的点,那么会自动检出中间的提交点,然后依次继续,当然也可以是用shell脚本实现自动化

4.git的存放区域

工作区:本地文件

暂存区:add后存放的区域

本地版本仓库:git commit后的本地版本仓库

远程仓库:

仓库的建立:

Github的创建:官网 https://github.com/  创建账户  创建仓库,github的基本使用见github的基础入门笔记。

5.分支与合并

git checkout -b 分支名: -b表示创建并切换分支,相当于git branch 分支名(创建)加git checkout 分支名(切换)

git branch :查看所有的分支

git branch  -a:参数可以查看远程分支,远程分支会用红色表示出来

git merge 分支名:将那条分支合并到当前分支上(master表示默认的支路)

分支上的添加和提交同master支路

merge合并的冲突:产生的原因,修改了同一个位置的内容,解决方法,修改产生冲突的文件后(vim   i   wq),add添加到暂存区,然后提交

冲突文件如下

《git基础入门笔记》

git rebase 分支名:合并

rebase的合并冲突解决:rebase 遇见冲突后会暂停当前操作,开发者可以选择手动解决冲突,然后 git rebase --continue 继续,或者 --skip 跳过(注意此操作中当前分支的修改会直接覆盖目标分支的冲突部分),亦或者 --abort 直接停止该次 rebase 操作

rebase 跟 merge 的区别:

merge 是一个合并操作,会将两个分支的修改合并在一起,默认操作的情况下会提交合并中修改的内容

merge 的提交历史忠实地记录了实际发生过什么,关注点在真实的提交历史上面

rebase 并没有进行合并操作,只是提取了当前分支的修改,将其复制在了目标分支的最新提交后面

rebase 的提交历史反映了项目过程中发生了什么,关注点在开发过程上面

merge 与 rebase 都是非常强大的分支整合命令,没有优劣之分,使用哪一个应由项目和团队的开发需求决定

merge 和 rebase 还有很多强大的选项,可以使用 git help <command> 查看

注意:rebase 操作会丢弃当前分支已提交的 commit,故不要在已经 push 到远程,和其他人正在协作开发的分支上执行 rebase 操作

 《git基础入门笔记》     《git基础入门笔记》

git branch –d 分支名 : 删除分支

git fetch:把远程服务器上所有的更新都拉取下来

git  pull:把远程分支的代码拉取下来并合并到本地分支

git log –graph:更加友好的查看相应的历史信息

《git基础入门笔记》

6.储存工作现场

git  stash:储存工作现场

git  stash list:查看保存过的现场

git stash apply   stash版本 :还原到之前

git  stash drop:删除最近的stash版本,也可以制动向右的stash版本

git stash pop:弹出最近的版本,后drop删除

git stash clear:清空暂存区的记录

7.标签

git  tag 标签名:在相应的标签上标记标签名

git  tag 标签名称  commitid:对历史版本添加标签

git tag -a 标签 -m “说明”  commitid :-a表示指定版本号,-m指定说明

git  tag:查看所有的标签

git tag -d :标签名

8.linux上git 服务器的搭建

添加ssh公钥,在~/.ssh/authorized_keys里添加客户端的公钥,一行一个,倘若没有相应的文件,可以新建mkdir  ~.ssh        

touch  ~/.ssh/authorized_keys

9.在eclipse中使用

《git基础入门笔记》

类似如上:add to index 相对linux 的git add ;commit相当于git commit;reset时光穿梭机,remote远程推送和取出,ignore忽略,rebase合并,merge合并,switch 同相当于git的创建和切换分支等

 

 

 

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