git入门1

2016-04-23/19:25:02

参考:http://blog.jobbole.com/78960/

Git bash中运行git log之后怎样终止这个命令,按q,再按回车键
清屏 clear
查询用户名
$ git config --global user.name
查询用户邮箱
$ git config --global user.email
创建文件夹 mkdir
显示当前的目录 pwd

git init 初始化仓库,多了个.git文件夹。该文件夹是隐藏的。

$ git add text1.txt ,添加文件到“暂存区”
$ git commit -m "text1 第一次提交" ,把文件提交到“仓库”,并添加提交信息
$ git status ,查看提交状态

接着向文件text1.txt添加一行文字,再次查询$ git status会提醒文件没有提交
$ git diff text1.txt ,查看修改了什么内容。
每次修改文件,都要add和commit一次。

$ git log ,查看历史提交。
$ git log --pretty=oneline,简化历史提交信息。带有commit的信息。

$ git reset --hard HEAD^,回退到上一个版本。
回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推
回退到前100个版本的话git reset –hard HEAD~100 即可
$ cat text1.txt,查看浏览内容

$ git reflog,查看所有修改信息。
$ git reset --hard 18d3d6a,git reset --hard 版本号,回退到最新的版本

------------------------------
理解工作区与暂存区的区别?
工作区:就是你在电脑上看到的目录

版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。
版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建
了第一个分支master,以及指向master的一个指针HEAD。

我们前面说过使用Git提交文件到版本库有两步:

第一步:是使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。

第二步:使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支上。

———————————————

Git撤销修改和删除文件操作。

未提交之前:
方法一:直接手动修改文件,然后add,commit掉
方法二:$ git reset --hard HEAD^,回退上一个版本
方法三:git status会提示,
(use "git checkout -- <file>..." to discard changes in working directory)
即:把text1.txt文件在工作区做的修改全部撤销。
命令如下:$ git checkout -- text1.txt

这里有2种情况,如下:

1·readme.txt自动修改后,还没有放到暂存区,使用 撤销修改就回到和版本库一模一样的状态。
2·另外一种是readme.txt已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态。

对于第二种情况,
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)

modified: text1.txt

Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)

modified: text1.txt

使用,$ git checkout -- text1.txt,就可以回到之前。

注意:命令git checkout — readme.txt 中的 — 很重要,如果没有 — 的话,那么命令变成创建分支了。

——————————————————

删除文件:
$ rm b.txt
删除一个文件,必须先staged
(use "git add/rm <file>..." to update what will be committed),然后在commit掉。

只要没有commit之前,如果我想在版本库中恢复此文件如何操作呢?
可以使用如下命令 git checkout — b.txt,

————————
远程仓库:

第一步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果有的话,直接跳过此如下命令,如果没有的话,打开命令行,输入如下命令:
$ ssh-keygen -t rsa -C "[email protected]"
密码为空。
id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

验证绑定状态:
$ ssh -T [email protected]
The authenticity of host ‘github.com (192.30.252.128)‘ can‘t be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘github.com,192.30.252.128‘ (RSA) to the list of known hosts.

Hi sym1120! You‘ve successfully authenticated, but GitHub does not provide shell access.

————————————————————
将本地repo推送到github上面。先有本地库,后有远程库时候,如何关联远程库。

git remote add origin https://github.com/sym1120/test3.git
git push -u origin master
会提示输入用户名和密码。
——————————————————
$ git remote add origin https://github.com/sym1120/test3.git
fatal: remote origin already exists.

$ git push -u origin master
Counting objects: 18, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (11/11), done.
Writing objects: 100% (18/18), 1.51 KiB | 0 bytes/s, done.
Total 18 (delta 1), reused 0 (delta 0)
To https://github.com/sym1120/test3.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.

从现在起,只要本地作了提交,就可以通过如下命令:

$ git push origin master

把本地master分支的最新修改推送到github上了,现在你就拥有了真正的分布式版本库了。

————————————————————————————
2. 如何从远程库克隆?

上面我们了解了先有本地库,后有远程库时候,如何关联远程库。

现在我们想,假如远程库有新的内容了,我想克隆到本地来 如何克隆呢?

选择一个目录,选择要克隆的项目的地址;
$ git clone https://github.com/sym1120/qqqq
Cloning into ‘qqqq‘...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
Checking connectivity... done.

————————————

创建与合并分支:

在版本回填退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。

$ git checkout -b dev,表示创建并切换,相当于如下2条命令

git branch dev 创建dev分支。
git branch 查看当前分支
git checkout dev切换分支

合并分支:
$ git merge dev
Updating 723f293..a57b9ba
Fast-forward
text1.txt | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

删除分支:
$ git branch -d dev
Deleted branch dev (was a57b9ba).

_________________________
分支管理策略。

通常合并分支时,git一般使用”Fast forward”模式,在这种模式下,删除分支后,会丢掉分支信息,现在我们来使用带参数 –no-ff来禁用”Fast forward”模式。

$ git merge --no-ff -m "merge with no-ff" dev

$ git branch -d dev
Deleted branch dev (was d17856f).

再次查询分支信息
$ git log --graph --pretty=oneline --abbrev-commit
* 1e94401 merge with no-ff
|\
| * d17856f dev add 1111111111111111
|/
* 78f1a08 fix conflicts
|\
| * b1045bc fenzhi add 99999999
* | 9cd6034 master add 999999999
|/
* a57b9ba dev add 88888
* 723f293 text fix finally
|\
| * 8cbe83c fix sencond
* | ce3d4fb fix
* | c79faa0 wwwwwwwwwwwwwwww
|\ \
| |/
| * 698a974 dev add 77777
* | afdee18 test
|/
* b963e81 change txt
* 424cce8 b.txt test
* 0273164 first add b.txt
* 4757d5e 最后一次修改text1.txt
* 4595644 一次性提交所有文件
* 18d3d6a 第三次修改文件
* 6e7d069 text1.txt添加一行22222的内容
* 06daaa0 text1 第一次提交

分支策略:首先master主分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面干活,干活一般情况下在新建的dev分支上干活,干完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。

————————

bug分支:

在开发中,会经常碰到bug问题,那么有了bug就需要修复,在Git中,分支是很强大的,每个bug都可以通过一个临时分支来修复,修复完成后,合并分支,然后将临时的分支删除掉。

Git还提供了一个stash功能,可以把当前工作现场 ”隐藏起来”,等以后恢复现场后继续工作。

时间: 2024-10-13 05:09:39

git入门1的相关文章

【Git入门之四】操作项目

[Git入门之四]操作项目 - JackyStudio - 博客频道 - CSDN.NET 1.查看操作日记 <git log>用于查看操作日记详情.因为Git是分布式的,采用SHA1这样的版本号可有效的防止版本冲突. [cpp]?view plaincopy ? #查看操作日记,底下那串长长的数据就是SHA1?ID,表示当前版本号?? $Snbsp;git?log?? commit?aea0365712908805bc28540b4db9fd2f15360a8b?? Author:?Jack

【Git入门之十二】DIY Git

[Git入门之十二]DIY Git - JackyStudio - 博客频道 - CSDN.NET Git的配置是很有学问的,如果弄懂它,将对你帮助很大. 1.用户配置 这是全局的. ? [cpp]?view plaincopy ? #设置用户名?? $Snbsp;git?config?--global?user.name?"Jacky"?? ?? #设置邮箱?? $Snbsp;[email protected]?? ? 2.设置默认编辑器 在需要输入文本信息时调用,比如之前的reba

【Git入门之十三】Ubuntu和git

[Git入门之十三]Ubuntu和git - JackyStudio - 博客频道 - CSDN.NET 之前我们都是在Windows平台下操作git.现在我们改用Ubuntu试一试吧!先准备好Ubuntu或者Linux系统吧.这里采用13.04版本虚拟机环境 1.Ubuntu下使用git 打开终端(Ctrl+Alt+T).Ubuntu下就没有git bash了,都是使用terminal. 1.1.安装SSH ? [cpp]?view plaincopy ? sudo?apt-get?insta

【Git入门之十四】Git GUI

[Git入门之十四]Git GUI - JackyStudio - 博客频道 - CSDN.NET 文章都快写完了,Git GUI才浮出水面,很多人要骂我,这么方便的东西怎么不早拿出来. 当然命令行和图形界面各有千秋,个人觉得命令行更能让人清楚的掌握整个项目的代码线.当然萝卜青菜各有所爱,Windows,Linux也是一样.喜欢什么客官您挑.本文只做简单介绍. 1.Git GUI有什么? 霸气测漏的右键菜单和可视化管理界面. 2.初始化仓库 新建一个文件夹叫JackyGUI,右键点击Git In

git 入门操作指令

git add [commit file list] 将已经修改的代码添加索引 git commit -m [commit message] 将已经索引的代码修改提交至本地的库 git push origin [branch_name] 将分支 branch_name 的代码推送至服务器 git pull origin [branch_name] 获取分支 branch_name上的最新代码 git pull --rebase origin [branch_name] 将当前 branch 从

版本控制工具 GIT入门教程

GIT 在团队中的中作流程 1.每个程序员在自己的分支上进行开发 2.主程序猿/Leader合并程序员程序 3.程序员之间也可以对一下提交冲突进行合并 下载和安装 GIT官方网址:http:// git - scm.com 具体怎么装,一直点下一步就是了(PS:windows) 创建一个库 启动git bash,由于是刚刚安装,所以还没有任何工程库 创建一个目录 mkdir gitproject 进入gitproject目录 cd gitproject 初始化工程库 git init 系统给出提

git入门(1.历史)

git入门(1.历史) git入门(2.基础) git入门(3.文件操作) git入门(4.提交与历史) git入门(5.分支) git入门(6.repo) 版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作... 一.原始版本控制 最原始的版本控制是纯手工的版本控制:修改文件,保存文件副本.有时候偷懒省事,保存副本时命名比较随意,时间长了就不知道哪个是新的,哪个是老的了,即使知道新旧,可能也不知道每个版本是什么内

Git入门(三)——没有版本控制意识的程序员不是一个好的程序员

之前所讲的都是"自娱自乐",自己管理自己的项目.本篇主要是Git入门的尾声,也是最为精华的一部分,即利用Git进行版本控制,进行"团队协作开发",也会介绍分支合并以及合并冲突时常见的处理方法. 五.团队协作流程 1. 基本流程 (1) 创建一个分支 当你在开发一个项目的时候,一般在同一时刻你会同时展开多个想法,其中一些比较成熟了,另一些还是很初级的.有了分支就可以很好地来进行管理了.当你在项目中创建一个分支的时候,你可能就是正在搭建一个可以尝试新想法的环境.你在新分

深入学习:Windows下Git入门教程(下)

声明:由于本人对于Git的学习还处于摸索阶段,对有些概念的理解或许只是我断章取义,有曲解误导的地方还请见谅指正! 一.分支 1.1分支的概念. 对于的分支的理解,我们可以用模块化这个词来解释:在日常工作中,一个项目的开发模式往往是模块化,团队协作式的开发.这样我们项目的进度可以称得上多核并发式的开发了.这种模块化的开发要求我们尽可能的高内聚低耦合以免造成一只胳膊没了整个人都废了的局面.因此在所有的版本控制器对代码进行管理的时候都引入了分支这个概念.那么分支是什么呢? 分支是相对于主干来说的,或者

git入门学习(一):github for windows上传本地项目到github

Git是目前最先进的分布式版本控制系统,作为一个程序员,我们需要掌握其用法.Github发布了Github for Windows 则大大降低了学习成本和使用难度,他甚至比SVN都简单. 一.首先在github创建自己的账号 github官方网址为:https://github.com/,相信大家都应该有自己的github账号. 二.下载github for windows 官方下载网址为:https://desktop.github.com/,我下载的版本为3.2.0.0 三.安装github