小白先写一篇简单的博客练练手(笑)。

收集一些常用的git的指令,主要用来充当备忘录的。


简单指令

初始化本地库

git init

使用这个指令后git便会知道你要管理这个文件,并在你的工作目录底下生成一个.git的文件(隐藏文件,Linux中可使用ls -a来查看所有所有文件)。所有的 git 数据都会保存在这个文件底下。

查看本地库状态

git status

在工作目录底下每一个文件都只会有两个状态:已跟踪、未跟踪。

已跟踪:那些被纳入了 版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后, 它们的状态可能是未修改,已修改或已放入暂存区。简而言之,已跟踪的文件就是 git 已经知道的文件。

未跟踪:除已跟踪文件外的其它所有文件都属于未跟踪文件,如果原本为已跟踪文件,经过编辑后,便成为未跟踪文件。即git不知道或修改过的文件。

添加暂存区

git add [文件名]

使用该命令后,文件便处于已跟踪状态,若此时再修改了文件,便会同时处于已跟踪状态和未跟踪状态,此时已跟踪状态的部分是先前使用命令后记录的部分,未跟踪的便是修改后的文件。

.gitignore文件:可以创建一个.gitignore后缀的文件,添加你需要忽略的文件,同时文件里面可以使用正则表达式,来批量忽略一些文件。

提交本地库

git commit -m "日志信息" [文件名]

使用该命令,此时[文件名]文件若处于已跟踪的状态,便会提交的本地库中了。

移除文件

git rm [文件名]
git rm -f [文件名]
git rm --cached [文件名]

git rm [文件名]:这条命令的意思是从工作区与暂存区删除文件,然后再提交本地库,库里的文件才会被删除。

git rm -f [文件名]:使用 git rm 来删除文件会出现报错,这是一种安全机制,用于防止误删尚未添加到暂存的数据,这时候可以添加 f 的参数。

git rm --cached [文件名]:想从git仓库中删除,但仍然希望保留在当前工作目录中时,可以使用该命令。

移动文件&修改文件名

git mv [要移动的文件名] [移动到的位置]
git mv [旧文件名] [新文件名]

git mv [要移动的文件名] [移动到的位置]:这条命令是从工作区与暂存区移动文件,本地库里面的文件还没有移动,只有你提交了以后库里面的文件才会被移动。

git mv [旧文件名] [新文件名]:修改文件名。

查看版本详细信息

git log
​git log -p -[数字]
git log --stat

git log:按时间来列出所有的提交,最新的会在最上面。只会看到提交记录,看不到每次提交的具体内容。

git log -p -[数字]:上面的命令可以查看最近的次数的详细日志,也可以不加数字。

git log --stat:不需要查看详细的日志时使用,查看简略统计信息。

版本穿梭

git reset --hard [版本号]

使用该命令切换版本。

请求帮助

 git help [命令]
 git [命令] --help
 man git-[命令]

用户签名

git config --global user.name [用户名]
git config --global user.email [邮箱]

如果用了 —global 选项,那么更改的配置文件就是位于你用户主目录的那个,以后你所有的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 —global 选项重新配置即可,新的设定保存在当前项目的.git/config 文件里。

git 并不对用户名与邮箱进行检测。如果没有设置用户名与邮箱会导致无法提交代码。


分支命令

创建分支

git branch [分支名]

使用该命令创建一个分支。

查看分支

git branch -v

查看当前处于哪个分支上面。

切换分支

git checkout [分支名]

切换到一个另一个存在的切换的分支。

合并分支

git merge [分支名]

将[分支名]分支合并到当前分支。

出现两个用户修改了同一个文件的时候,合并会出现冲突,这时候需要手动解决冲突,格式一般如下:

<<<<<<< [当前分支名]
[当前分支的代码]
=======
[合并过来的代码]
>>>>>>> [要合并进来的分支名]

要手动的决定使用哪段代码,同时删除 <<<<<<<=======​>>>>>>> 所在的行,最后留下你想留下的代码行,示例如下:

[当前分支的代码]

远程库操作

起别名

git remote add [别名] [远程地址]

为远程的地址取一个别名,用这个别名来代替整个地址。远程库一般使用 http 协议或者 ssh 协议。

查看远程地址别名

git remote -v

查看所有别名和对应的地址。

推送

git push [别名] [分支]

当有所克隆服务器的写入权限,且之前没有人推送时,这条命令才生效。当其他人推送到了上游,需要先抓取他们的工作,合并到自己的工作后才能推送。

克隆

git clone [远程地址]

将所有数据克隆下来,并覆盖工作区的所有文件,会导致数据丢失。

git pull [远程库地址别名] [远程分支名]

这条命令会尝试将远程库中的东西与你自己工作区的资料进行合并,而不会直接覆盖你的所有文件。


结语

这只是一个常用git命令的汇总,所以比较粗糙,且现在大部分编译器啊什么的都嵌入了git,都可以使用客户端的图形化界面完成,但学了总比没有好。学会了git命令可以对本地进行文件版本管理,不会出现复制、粘贴、重命名的重复操作产生一大堆占空间还凌乱的不同版本文件了😀。