常用的git命令

来源:互联网 发布:history linux 查询 编辑:程序博客网 时间:2024/06/05 21:07

(作为笔记,以供常用的时候浏览一下,全面些!)

一、通过git创建ssh秘钥

------------------------------------------------------------
创建一对新的SSH密钥(keys),输入如下命令:

$ssh-keygen -t rsa -C "your_email@example.com"

#这将按照你提供的邮箱地址,创建一对密钥

Generating public/private rsa key pair.

Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]

----------------------------------------------
测试

为了确认我们可以通过SSH连接web,我们输入下面命令。

输入后,会要求我们提供验证密码,输入之前创建的密码就ok了。

$ssh -T git@git.olymtech.com

你可能会看到告警信息,如下:


The authenticity of host 'git.olymtech.com (121.41.43.201)' can't be established.

RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.

Are you sure you want to continue connecting (yes/no)?

不用担心,直接输入yes。

如果看到下面信息,就说明一切完美!

Hi username! You've successfully authenticated, but git.olymtech.com does not provide shell access.
二、常用的git命令集
---------------------------------------------------------
1、通过git init命令把这个目录变成Git可以管理的仓库:
$ git init


2、添加修改后的文件,并且提交修改
$ git add readme.txt
$ git commit -m "append GPL"


(像这样,你不断对文件进行修改,然后不断提交修改到版本库里,就好比玩RPG游戏时,每通过一关就会自动把游


戏状态存盘,如果某一关没过去,你还可以选择读取前一关的状态。有些时候,在打Boss之前,你会手动存盘,以


便万一打Boss失败了,可以从最近的地方重新开始。Git也是一样,每当你觉得文件修改到一定程度的时候,就可以


“保存一个快照”,这个快照在Git中被称为commit。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个


commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。)


3、用git log可以查看提交历史,以便确定要回退到哪个版本
$ git log
$ git log --pretty=oneline


4、版本回退
$ git reset --hard HEAD^
(HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意


我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^


比较容易数不过来,所以写成HEAD~100。)


5、用git reflog查看命令历史,以便确定要回到未来的哪个版本。
$ git reflog
ea34578 HEAD@{0}: reset: moving to HEAD^
3628164 HEAD@{1}: commit: append GPL
ea34578 HEAD@{2}: commit: add distributed
cb926e7 HEAD@{3}: commit (initial): wrote a readme file
可以使用$ git reset --hard 3628164进行版本的回退


6、把文件往Git版本库里添加的时候,是分两步执行的:


第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;


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


因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。


7、用git status查看一下状态


8、git checkout -- file可以丢弃工作区的修改:


git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:


一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;


一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。


总之,就是让这个文件回到最近一次git commit或git add时的状态。


9、本地库和远程关联(git@github.com:xxxxx/xxxxxx.git  这里为GitHub上自己的项目库


$ git remote add origin git@github.com:xxxxx/xxxxxx.git


10、把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
$ git push origin master
(要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;


关联后,使用命令git push -u origin master第一次推送master分支的所有内容;


此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;)


11、从远程仓库下克隆

git clone git@github.com:michaelliao/bootstrap.git

github-repos


一定要从自己的账号下clone仓库,这样你才能推送修改。

12、创建分支 、合并分支、查看分支、删除分支

12/1创建分支
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
$ git branch dev$ git checkout devSwitched to branch 'dev'



12/2查看分支
git branch命令查看当前分支:
$ git branch* dev  master

git branch命令会列出所有分支,当前分支前面会标一个*号。

12/3 合并分支

git merge命令用于合并指定分支到当前分支

dev分支的工作成果合并到master分支上:

$ git merge devUpdating d17efd8..fec145aFast-forward readme.txt |    1 + 1 file changed, 1 insertion(+)
12/4删除分支

删除dev分支:

$ git branch -d devDeleted branch dev (was fec145a).