码迷,mamicode.com
首页 > 其他好文 > 详细

git常用命令

时间:2015-10-25 22:19:16      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:

windows:

git下载地址:

https://git-for-windows.github.io/

安装完成后,输入命令行做最后一步设置:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

 

创建版本库,选择自己想放置的盘,输入下面命令(learngit为版本库名,建议英文)

$ mkdir learngit
$ cd learngit
$ pwd

输入下面指令把这个目录变成git可以管理的仓库

$ git init

把要保存到库的文件放在learngit目录下或子目录下

使用下面命令保存到暂存区

$ git add readme.txt

使用下面命令告诉git,把文件提交到仓库

$ git commit -m "wrote a readme file"

其中-m后面输入的是本次提交的说明

若想查看仓库的修改情况或者状态,可输入下面命令

$ git status
# On branch master
# 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:   readme.txt
#
no changes added to commit (use "git add" and/or "git commit -a")

上面信息告诉我们,readme.txt被修改过,具体要看修改过说明内容,可输入以下指令

$ git diff readme.txt 

若想看历史记录,可输入以下指令

$ git log

若想看简洁一点的,可输入以下指令

$ git log --pretty=oneline

在git中,HEAD表示当前版本,上个版本是HEAD^,上上个则是HEAD^^,更多则可以写成HEAD~100。若想回退上一个版本,则可输入下面指令

$ git reset --hard HEAD^

若想看看版本内容,可输入下面指令

$ cat readme.txt

若想回退指定版本,需要指晓commit_id,可输入以下指令

$ git reset --hard 3628164

若想查看每一次指令,可输入

$ git reflog

输入以下指令可丢弃工作区的修改

$ git checkout -- readme.txt

若想把暂存区的修改撤销掉重新放回工作区,可用命令

$ git reset HEAD readme.txt

使用以下命令删除文件

$ rm test.txt

远程仓库:

在用户主目录下(C盘/用户/xxx),查看有没.ssh目录,再继续查看有木有id_rsa和id_rsa.pub这两个文件,若有则可跳过下一步,否则则输入以下命令,创建SSH Key

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

一般不设置密码

接着登录github,打开Accout settings,SSH Keys页面,点Add SSH Key,填title,在Key文本框里面粘贴id_rsa.pub文件的内容,点击Add Key,完成。

添加到远程库

在github上添加一个仓库后,可使用以下命令把本地仓库与之关联

$ git remote add origin git@github.com:githubname/learngit.git

githubname必须要替换成自己的github账户名

将本地库的所有内容推送到远程库上,使用以下代码:

$ git push -u origin master

SSH警告

当第一次使用git的clone或者push命令链接github时,会得到一个警告:

The authenticity of host github.com (xx.xx.xx.xx) cant be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?

这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。

从远程库克隆

输入以下命令,可以在github上克隆一个仓库到本地库

$ git clone git@github.com:githubname/gitskills.git

githubname为github的账户名,gitskills是github上面的一个仓库的名字

创建分支

使用以下命令创建分支并切换到分支上

$ git checkout -b dev
Switched to a new branch dev

-b参数表示创建并切换,相当于以下两条命令

$ git branch dev
$ git checkout dev
Switched to branch dev

查看当前分支使用以下命令

$ git branch
* dev
  master

该命令会列出所有分支,当前锋分支前面会表*号

以下命令用户合并指定分支到当前分支

$ git merge dev
Updating d17efd8..fec145a
Fast-forward
 readme.txt |    1 +
 1 file changed, 1 insertion(+)

 

Git鼓励大量使用分支:

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

 

当git无法自动合并分支时,就必须首先解决冲突,再提交,合并完成

用以下命令可以看到分支合并图

$ git log --graph

使用以下命令表示禁用Fast forward

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

dev表示分支

使用以下明林可查看分支历史

$ git log --graph --pretty=oneline --abbrev-commit
*   7825a50 merge with no-ff
|| * 6224937 add merge
|/
*   59bc1cb conflict fixed

合并分支时,加上--no-ff参数可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而Fast forward合并就看不出来曾经做过合并。

 

bug分支

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

$ git stash
Saved working directory and index state WIP on dev: 6224937 add merge
HEAD is now at 6224937 add merge

现在,用git status查看工作区,就是干净的(除非有没有被Git管理的文件),因此可以放心地创建分支来修复bug。

使用以下命令查看工作现场

$ git stash list
stash@{0}: WIP on dev: 6224937 add merge

工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:

一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

另一种方式是用git stash pop,恢复的同时把stash内容也删了:

$ git stash pop
# On branch dev
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       new file:   hello.py
#
# 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:   readme.txt
#
Dropped refs/stash@{0} (f624f8e5f082f2df2bed8a4e09c12fd2943bdd40)

再用git stash list查看,就看不到任何stash内容了:

$ git stash list

你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:

$ git stash apply stash@{0}

 

 

 

未完,待续...

git常用命令

标签:

原文地址:http://www.cnblogs.com/aissd/p/4909726.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!