博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git
阅读量:4181 次
发布时间:2019-05-26

本文共 2168 字,大约阅读时间需要 7 分钟。

1.基本操作

$git init    #初始化一个代码库

$git add . #将改动的东西加到index中,.指当前目录及子目录,也可用具体的文件名代替

$git commit #代码的commit

$git commit -m "我的log"  代码的commit

一般这几条命令就行,当然git add . 和git commit 可以用git commit -a一条命令来代替,但是后者不能将新添加的文件也commit了。

$git log #查看更新的log,若是想要更详细的更新log,可以加 -p参数

2.branch

$git branch branch_name#创建一个分支

$git checkout branch_name#切换到指定的分支去

$git branch -b branch_name #创建分支,并切换到分支中去

$git branch  #查看所有的分支,当前的分支前,会有一个*标示

$git branch -d branch_name#删除名为branch_name的分支

$git watchchanged -p branch1..branch2  #查看两个分支的差分

分支还是个很好用的东西的,以前在用SVN时,因为创建分支,就相当于创建一个文件夹,感觉不好用,所以,没怎么用过分支。但是在GIT中,在进行代码merge了,打patch时,分支还是必不可少的。

3.tag

SVN,每次代码的commit,都对应着一个全局的版本号。GIT不是这样子的,它会生成一个唯一的SHA1号码来标示每次的更新。但是,对于我们来说,可读性就太差了。而且,有时还想对某些重大的release点,进行一些特殊的标记。tag的用途来了

$git tag tag_name sha1_num#为id为sha1_num的commit加一个叫tag_name的tag

$git tag #查看当前的代码库中,所有的tag

$git tag -d tag_name#删除名为tag_name的tag

4.patch

协同开发时,git pull或git push是不错的选择,但是patch也是必不可少的。

4.1 生成patch

4.1.1 如果当前有两个branch,分别名为base和working。base是队友们手头最新的代码,working是自己更新过的代码。

 base

*working

这时候,可以通过git diff来生成patch,发给队友们

$git checkout working#切换到working分支

$git diff  base > update.patch#生成相对于base的patch

上述命令是通过重定向,将diff的结果写入了update.patch中。该方法不能保持历次改动的log

4.1.2 当然,也可以用下述命令

$git format-patch start_sha1..end_sha1   #按顺序,根据版本从start_sha1升级到end_sha1的历次改动,生成一系列的patch

4.2 打patch

4.2.1 对应上述两种方法生成的patch,都可以用下面这条命令将patch打上

$git apply patch_name#这地方如果是好多的patch,用git apply *.patch也是可行的

$git add .

$git commit -m "log"#别忘了commit

4.2.2 对应于4.1.2生成的patch,可以用下述命令来打patch

$git am *.patch  #会依次将生成的n多patch给打上,然后自动commit

当然,如果打patch失败了,想再次用这条命令打patch前,不许得运行下述命令,否则,会报错

$git am --abort

这样子打的patch,会保留历次commit的log信息

5.进行了错误的commit怎么办

在GIT中,是有后悔药的。如果进行了错误的commit,比如,本来版本为sha1_a,我上传了代码后,升级代码为sha1_b。但是我突然发现,我这次上传的代码有个很严重的问题,我得重新斟酌斟酌。怎么办?可是通过下述的命令,将覆水收回去。

$git reset -hard  sha1_a

现在世界又恢复为我更新前的样子了。

6.想查找一下命令怎么用

好方法是,上网查啊。不过,现在网上大部分文章可能都是某些人到处copy,查来查去,没准就那么几篇,搞不好,还不是自己想要的,这时候怎么办?

遇到问题,找”男人”啊。

$man git-command

查看command的手册。这地方会把命令的参数都列出来,虽说解释的不是很多,但是一般都够用了。

比如,我想看git reset命令都能怎么用,我可以

$man git-reset

“男人”就会告诉你怎么办了。你会发现这条命令出了hard参数,还有好几个参数,表示不同的含义。

7.查看当前index中的文件

$git ls-files --staged

8.从远程取一个分支,到本地的某个分支上

$git pull path/to/remote/repo remote_branch_name:local_branch_name

转载地址:http://mphai.baihongyu.com/

你可能感兴趣的文章
高性能服务器设计
查看>>
图文介绍openLDAP在windows上的安装配置
查看>>
Pentaho BI开源报表系统
查看>>
Pentaho 开发: 在eclipse中构建Pentaho BI Server工程
查看>>
android中SharedPreferences的简单例子
查看>>
android中使用TextView来显示某个网址的内容,使用<ScrollView>来生成下拉列表框
查看>>
andorid里关于wifi的分析
查看>>
Hibernate和IBatis对比
查看>>
Spring MVC 教程,快速入门,深入分析
查看>>
Android 的source (需安装 git repo)
查看>>
Ubuntu Navicat for MySQL安装以及破解方案
查看>>
java多线程中的join方法详解
查看>>
在C++中如何实现模板函数的外部调用
查看>>
HTML5学习之——HTML 5 应用程序缓存
查看>>
HTML5学习之——HTML 5 服务器发送事件
查看>>
SVG学习之——HTML 页面中的 SVG
查看>>
SVG 滤镜学习之——SVG 滤镜
查看>>
mysql中用命令行复制表结构的方法
查看>>
hbase shell出现ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException
查看>>
让代码变得更优雅-Lombok
查看>>