Git入门常用命令

前言

Git 是 Linux 之父 Linus Trovalds,为管理 Linux 内核代码而建立的,被认为是分布式版本控制工具中的顶级水准。

虽然现在也有window版本,但较Linux系的还是相形见拙许多。这里总结些GIT的常用命令,有了这些,基本就可以脱离GUI了

一、命令行相关

学习 git 前最好先对命令行相关的东西了解下,比如:

1
2
3
4
5
6
7
8
9
10
11
12
13
cd dev    //进入当前路径的dev

cd ..    //返回上级目录

cd -  //返回上次目录

pwd    //查看当前目录

ls    //列出当前目录内容

mkdir dev    //新建一个名为dev的目录

rm -rf dev    //强制删除,不管目录为不为空

vim:

i → Insert 模式,按 ESC 回到 Normal 模式
x →删当前光标所在的一个字符
dd →删除当前行,并把删除的行存到剪贴板里
p → 粘贴剪贴板
:x, ZZ 或 :wq → 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车)

二、初始化

每次提交都会在git log里显示作者姓名和邮箱,必须在最开始时就显示的设置好:

1
2
git config --global user.name "cheney"
git config --global user.email cheney@example.com

删除配置内容:

1
2
git config --unset --global user.name
git config --unset --global user.email

那么现在我们可以初始化一个新的版本库了,只需要:

1
2
3
4
git init    //给当前目录做个快照
git init --bare test   //或者创建一个裸仓库 test
git add .
git commit -m "first commit"    //commit -m 连带注释一起提交

或者是直接克隆一个远程仓库:

1
git clone https://github.com/sorcerers/frontLib.git

window下面的bash控制台ls命令下中文名会乱码,在根目录下(cd /)gitetcgit-completion.bash文件中追加一行即可:

1
alias ls='ls --show-control-chars --color=auto'

三、常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
git branch xxx 新建分枝xxx
// -a list both remote-tracking and local branches //列出所有本地和远程分枝,仅branch只列出本地分枝
// -d delete fully merged branch //删除某分枝 branch -d xxx
// -D delete branch (even if not merged) //强制删除,即使没有合并
// -m move/rename a branch and its reflag //重命名 branch -m xxx
// -M move/rename a branch, even if target exists //会覆盖已存在的同名分枝

git add
git add -A // 处理所有:添加、修改、删除
git add . // 处理添加和修改,不处理删除
git add -u // 处理修改和删除,不处理新添加文件

git commit -a //这是一个偷懒的命令:把已经在索引里,并修改的 重新 添加到 index 索引 ; git commit;

git commit --amend //修改最后一次提交
此命令将使用当前的暂存区域快照提交。如果刚才提交完没有作任何改动,直接运行此命令的话,相当于有机会重新编辑提交说明,但将要提交的文件快照和之前的一样

git remote prune origin //删除远程分枝origin中有而本地没有的分枝,或者 git pull -p

git push --all // 推送所有分枝

git push --force // 强制推送

git reset --hard // 回到上一次提交
reset HEAD, index and working tree

git stash //暂存临时代码
git stash apply //应用上一个stash
git stash pop //应用上一个stash,并且将其删除
git stash save xxx //以xxx名字保存
git stash show //查看详情
git stash list
git stash apply stash@{1} //取出指定的
git stash clear //清空

git diff //查看当前工作目录和上次暂存内容的差异
git diff xxx //查看当前工作目录与另外一个叫'xxx'分支的差别

查看提交历史:
git log //默认按提交时间列出所有更新,新的排在上面
git log -p //展开每次提交的内容差异 ,用 -2可以显示最近两次更新,如:git log -p -2
git log --stat //显示每次更新的文件修改统计信息

结语

以上只是目前工作中比较常用的一些命令,还有许多精深的东西尚待探索