git入门

git入门

在平常的工作中虽然一直在使用git作为项目管理的工具,但一直使用的就是git addgit commitgit pullgit push,没有做检测,因此一直会把一些不应该同步的文件同步,或者提交一些脏代码,使得原本能执行的程序,变得不能执行。这不能是用简单的粗心能够说明。一是自己对git中的命令不熟悉。二是没有一个好的代码提交习惯。

工具

我使用git命令练习是使用githug这个游戏。

安装

这个游戏是使用Ruby语言编写的,可以通过:sudo gem install githug进行安装

如果,没有安装Ruby使用:sudo apt install ruby(针对 Ubuntu 16.04) ,如果是其他版本把apt替换成apt-get即可。

安装完后输入githug,然后输入y 出现如下界面:》

然后进入git_hug文件夹准备开始游戏。游戏的玩法可以通过说明查看。

Git命令

init

Git 的init命令用于创建一个空的Git仓库或者重新初始化一个已经存在的仓库。但是讲道理这个命令很少用到,除了上次在AWS上搭建Blog时使用到了一次。

config

config命令通常是用于配置git的一些属性,同过git config,可以发现 config下带如下参数:

但比较常见的做法是设置自己的邮箱和用户名

git config --global user.name "hsulei"
git config --global user.email "[email protected]"

add

add指令通常用于添加文件索引到库中,git add .或者git add xxx(xxx为指定文件名)

commit

commit命令用于将以及add的文件添加到库中。在每次提交的时候需要使用-m 后面添加上提交的信息。用一种情况是当提交完成之后,突然发现了漏了一些文件没有提交。很多的做法是在单独提交一次。但是这样是不合理的,在这种情况下可以使用--amend子命令:

git add a.txt
git commit --amand

commit的时候可以带时间。使用--date参数

git commit -m"add  date" --date "2016-12-2 23:23:23"

clone

clone用于克隆一个仓库到本地。

git clone xxx //xxx为具体的仓库地址
git clone xxx location //xxx为具体的仓库地址,location为要clone到的本地库路径

.gitignore

这不是一个命令。在所有的git仓库中都会有一个.gitignore文件,这个文件是用来控制一些文件不应该添加到git仓库中的忽略文件。在.gitignore文件中填写要忽略的文件的路径,就可以在下次提交时,将这些文件忽略掉。比如写Android的一些编译文件。在.gitignore中可以忽略一类文件。例如使用vim编辑后产生的.swp文件。在.gitignore中添加:

*.swp

但是有时候在忽略一类文件的时候,需要提交某一个特定的文件,比如忽略所有的.a文件,但是,需要提交lib.a文件,此时我们就可以在.gitignore文件中这样写:

*.a
!lib.a

status

使用 git status命令可查看提交的记录,可以看到哪些文件提交了,哪些文件还没有添加到库中:

绿色的部分是已经被git追踪到的,红色的还没有提交到库中的。

rm

git rm用来告诉git ,需要将哪些文件从仓库中删除,同时将这个操作记录下来,如果只是简单的rm只是将该文件从物理硬盘上删除,但是没有将其从git记录中删除。

stash

有时候,做了修改,但是突然来了命令,要紧急需改bug,那这次的修改不能提交。可以用stash命令将当前的修改暂存,当bug修改完成并且commit了之后,在使用git stash pop命令恢复,继续新功能开发。

mv

mv移动或重命名一个文件、目录或符号连接,比如,我们想把一个old.txt重命名成new.txt,此时我们就能使用:

git mv old.txt new.txt

log

log 通过该命令,可以查看代码的提交记录。

tag

tag 通过该命令,可以添加一个标签,但是在提交的时候,git是不会自动提交该标签的,需要在使用push,命令的时候添加--tag参数。

reset

reset可以将错误提交的文件取消提价状态 :

git reset xx

reset 可以将当前地 HEAD重置到制定的位置,如果希望变更保持在staging area,那么就添加--soft

checkout

checkout有很多的左右:

  1. 撤销变更
  2. 切换分支
git checkout xxx   //xxx为要撤销的文件名称
git checkout -b xxx //xxx为分支名
git checkout  xxx //xxx为tag名称

remote

remote命令可以查看当前的仓库。

git remote 

使用-v子命令可以查看查看的URL地址。

可以使用add 子命令,添加一个仓库的地址。

git remote add xxx //xxx为仓库的url地址

pull

pull命令用于从仓库中拉取数据。

push

push 用于向指定的仓库中提交数据。

rebase

rebase命令也是用于合并,但是这个合并和merge命令不同。?

diff

diff命令用于查看改动变化:

git diff xxx  //xxx为要查看的文件名

使用了该命令后的效果如下:

在修改的地方使用了不同但是和标记来表示:红色表示删除的,绿色的表示添加的。

blame

blame命令用于查找文件每个部分是有谁修改的

branch

branch命令用于拉取分支。如果忘记开启新的分支就修改并提交了代码,也是使用branch带指定参数,使新的分支基于任意一次提交:

git branch test HEAD

使用-d参数就可以删除一个分支。

merge

merge指令用于合并分支

git merge test

fetch

fetch指令将更新的代码拉回本地,但是不进行合并。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章