git学习,常用命令

由于 Git 和 Linux 操作系统都是同一个作者,因此不用我说你也应该猜到 Git 在 Linux上的安装是最简单方便的。比如你使用的是 Ubuntu 系统,只需要打开 shell 界面,并输入:

sudo apt-get install git-cor

按下回车后输入密码,即可完成 Git 的安装

其他版本系统直接去下载Git - Downloads安装,安装步骤,对于新手而言直接下一步即可

因为本人使用的是Windows系统所以只将Windows系统,但是git命令,所有系统通用

安装git成功后,在任何地方点击右键即可看到git选项

点击Git Bash Here 首先应该配置一下你的身份,这样在提交代码的时候 Git 就可以知道是谁提交的了,命令如下所示:
git config --global user.name "Tony"
git config --global user.email "tony@gmail.com"
配置完成后你还可以使用同样的命令来查看是否配置成功,只需要将最后的名字和邮箱地址去掉即可,即:

git config --global user.name
git config --global user.email

接下来就可以创建代码仓库了,首先应该进入到项目的根目录中|(这点很重要),右键点击Git Bash Here,进入命令行窗口,输入命令(建议此步操作前先备份目录,避免新手操作出错)

git init

回车,会在目录下生成.git文件夹

提交代码之前,我们首先应该将不需要提交的文件进行过滤下,在根目录下创建.gitignore文件,需要注意的是在Windows下新建文件输入文件名.gitignore,回车时会报错,此时我们输入文件名“.gitignore.”就行了,它会自动把后面的那个点去掉,就创建成功了。例如我们过滤文件内容如下:
.idea/
out/
target/
baoframe.iml
从上面可以看到输入目录名+“/”,会过滤整个目录。输入文件名会过滤文件。如果输入*.class就会过滤所有后缀名为class的文件

提交代码,只需要使用add 和 commit 命令就可以了。add 是用于把想要提交的代码先添加进来,而 commit 则是真正地去执行提交操作。比如我们想添加 AndroidManifest.xml 文件,就可以输入如下命令:
git add AndroidManifest.xml
添加某个目录,其实只需要在 add 后面加上目录名就可以了。比如将整个 src 目录下的所有文件都进行添加,就可以输入如下命令:
git add src
可是这样一个个地添加感觉还是有些复杂,有没有什么办法可以一次性就把所有的文件都添加好呢?当然可以,只需要在 add 的后面加上一个点,就表示添加所有的文件了,命令如下所示:
git add .
文件添加好了,我们就可以提交代码了,输入以下命令,并回车
git commit -m "初始化"
注意在 commit 命令的后面我们一定要通过-m 参数来加上提交的描述信息,没有描述信息的提交被认为是不合法的。这样所有的代码就已经成功提交了

查看本地是否修改(不过我喜欢在开发工具里面看哈),命令:
git status
可以看到本地是否有修改,当有修改时,可以使用命令:
git diff
查看所有文件的更改内容。如果只想看某个文件的更改内容,命令后加上文件目录即可
git diff src/com/example/providertest/LoginController.java

如果要还原更改,命令如下:
git checkout src/com/example/providertest/LoginController.java
需要注意的是如果执行了 add 命令的文件,上述命令是不能还原的,首先需要取消添加:
git reset HEAD src/com/example/providertest/LoginController.java
还原前后可以使用git status命令查看是否还原成功,当然在开发工具里做还原操作会更方便

查看提交记录可以使用:git log
如果我们只想查看其中一条记录,可以在命令中指定该记录的 id,并加上-1 参数表示我们只想看到一行记录:
git log 2e7c0547af28cc1e9f303a4afddbb704281b -1
而如果想要查看这条提交记录具体修改了什么内容,可以在命令中加入-p参数,命令如下:
git log 2e7c0547af28cc1e9f303a4afddbb704281b -1 –p

下面来说一个更重要的功能--分支,以下讲解为什么用分支的内容是转载的:
你也许会有疑惑,为什么需要建立分支呢,只在主干线上进行开发不是挺好的吗?没错,通常情况下,只在主干线上进行开发是完全没有问题的,不过一旦涉及到出版本的情况,如果不建立分支的话,你就会非常地头疼。举个简单的例子吧,比如说你们公司研发了一款不错的软件,最近刚刚完成,并推出了 1.0 版本。但是领导是不会让你们闲着的,马上提出了新的需求,让你们投入到了 1.1 版本的开发工作当中。过了几个星期,1.1 版本的功能已完成了一半,但是这个时候有用户反馈,之前上线的 1.0 版本发现了几个重大的 bug,严重影响软件的正常使用。领导也相当重视这个问题,要求你们立刻修复这些 bug,并重新发布 1.0版本,但这个时候你就非常为难了,你会发现根据没法去修复这些 bug。因为现在 1.1 版本已开发一半了,如果在现有代码的基础上修复这些 bug,那么更新的 1.0 版本将会带有一半1.1 版本的功能!进退两难了是不是?但是如果你使用了分支的话,就完全不会存在这个让人头疼的问题。你只需要在发布 1.0 版本的时候建立一个分支,然后在主干线上继续开发 1.1 版本的功能。当 1.0 版本上发现任何 bug 的时候,就在分支线上进行修改,然后发布新的 1.0 版本,并记得将修改后的代码合并到主干线上。这样的话,不仅可以轻松解决掉1.0版本存在的bug,而且保证了主干线上的代码也已经修复了这些 bug,当 1.1 版本发布时就不会有同样的 bug存在了。
知道的可以不看上面的这段话,说了这么多也就是我们最好上线一个版本就建立一个分支,上线了下一个版本或者更久之后就可以删除这个分支。
查看当前的版本库当中有哪些分支,可以使用 git branch –a
创建一个分支,命令:git branch version1.0
查看以下截图可以看出,*代表当前项目所处的分支

切换分支的命令也很简单,只需要使用 checkout 命令即可,如下所示:
git checkout version1.0
需要注意的是,在 version1.0 分支上修改并提交的代码将不会影响到 master 分支。同样的道理,在 master 分支上修改并提交的代码也不会影响到 version1.0 分支。因此,如果我们在 version1.0 分支上修复了一个 bug,在 master 分支上这个 bug 仍然是存在的。这时将修改的代码一行行复制到 master 分支上显然不是一种聪明的做法,最好的办法就是使用 merge命令来完成合并操作,如下所示:
git checkout master      //切换分支到主分支
git merge version1.0   //将1.0分支合并到主分支
git branch -d version1.0 //删除version1.0分支(本地)
git push origin --delete UAT 删除version1.0分支(远程仓库)
仅仅这样简单的两行命令,就可以把在 version1.0 分支上修改并提交的内容合并到master 分支上了。
过了一段时间我们不需要这个分支就可以删掉:git branch -D version1.0
按文件合并:git checkout version1.0 文件路径。即将version1.0分支上的文件合并到当前的分支,多个路径加空格,可以批量合并。

按版本号合并:
先用git log 查看版本号(唯一,无论哪个分支)。
切换到需要的分支:git checkout 分支名
根据版本号合并到当前分支:git cherry-pick 版本号

查看代码改变的行数:
git log --author="" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值