一、常用命令
所有命令前都要加 git
,如表中的init
是指 git init
。
点击命令可直接跳转至本文第一次使用的地方。
以下命令都在命令行里执行。
1.本地命令
行为 | 命令 | 备注 |
---|---|---|
初始化 | init | 在本地的当前目录里初始化git仓库 |
clone 地址 | 从网络上某个地址拷贝仓库(repository)到本地 | |
查看当前状态 | status | 查看当前仓库的状态。碰到问题不知道怎么办的时候,可以通过看它给出的提示来解决问题 |
查看不同 | diff | 查看当前状态和最新的commit之间不同的地方 |
diff 版本号1 版本号2 | 查看两个指定的版本之间不同的地方。这里的版本号指的是commit的hash值 | |
添加文件 | add -A | 这算是相当通用的了。在commit之前要先add |
撤回stage的东西 | checkout -- . | 这里用小数点表示撤回所有修改,在-- 的前后都有空格 |
提交 | commit -m "提交信息" | 提交信息最好能体现更改了什么 |
删除未tracked | clean -xf | 删除当前目录下所有没有track过的文件。不管它是否是.gitignore文件里面指定的文件夹和文件 |
查看提交记录 | log | 查看当前版本及之前的commit记录 |
reflog | HEAD的变更记录 | |
版本回退 | reset --hard 版本号 | 回退到指定版本号的版本,该版本之后的修改都被删除。同时也是通过这个命令回到最新版本。需要reflog配合 |
2.远程库存命令
行为 | 命令 | 备注 |
---|---|---|
设置用户名 | config --global user.name "你的用户名" | |
设置邮箱 | config --global user.email "你的邮箱" | |
生成ssh key | ssh-keygen -t rsa -C "你的邮箱" | 这条命令前面不用加git |
添加远程仓库 | remote add origin 你复制的地址 | 设置origin |
上传并指定默认 | push -u origin master | 指定origin为默认主机,以后push默认上传到origin上 |
提交到远程仓库 | push | 将当前分支增加的commit提交到远程仓库 |
从远程仓库同步 | pull | 在本地版本低于远程仓库版本的时候,获取远程仓库的commit |
可以用一张图直观地看出以上主要的命令对仓库的影响。
二、Git for Windows软件安装
1.官网下载客户端(https://git-scm.com/download/win)
2.安装(一路点击Next
就行了)
三、本地Git的使用
1.新的仓库(初始化)
1.1打开命令行(cmd)或者在想要创建repository的地方右键鼠标并点击 Git Bash Here
打开窗口。
1.2运行 git init
来初始化仓库,如下图:
2.文件的添加和提交
我在这个文件夹里面创建了一个 test.txt 的文件。里面写着 妹子别走!
这时我使用 git status 来查看有什么变化:
它告诉我有一个还未追踪的文件,并提示我可以使用 git add <file>... 把它加进去。
但是我并不打算把所有命令都介绍一遍,所以我选择使用上面概览时所提到的 git add -A 命令。
嗯,什么提示都没有。没关系,我们再次使用 git status
状态变了!说明add成功。再看看它的提示 Changes to be committed
,也就是说现在可以执行commit了。下面一行则告诉你如何将文件从stage里移出,这里不管。
执行 git commit -m "提交信息"
将文件提交到repository里。提交信息用英文的双引号括起来。
这时运行 git log
就可以看到提交的记录了
3.文件的修改
我修改文件内容。
我们用 git status
看看有什么变化:
现在我们通过git看看文件做了哪些变化,执行 git diff
它默认跟最新的一个commit进行比较。
红色(前面有减号-)表示删除,绿色(前面有加号+)表示添加。
因此,在git看来,我们是删除了原来那一行,并添加了新的两行。这在文件内容特别多的时候效果比较明显。
这个命令在以下情况可以使用:
你忘记改了什么,又想知道
别人发给你新版本,你想知道更改了什么
注:如果你用 windows 创建 txt 文件,并用自带文本编辑器来编辑文本,得到的编码是 GBK 。而 Git 读取文件时,使用 UTF-8 无 ROM 编码。因此会出现中文无法正常显示的情况。
假如我现在想撤销这些更改,执行 git checkout -- . 就行了:
4.版本回退
从刚才的 git log
开始回退,执行 git reset --hard 2df0a28(取版本号前7位就可以了)
5.清除未追踪的文件
用checkout是没办法删除掉它的,使用 git clean -xf
四、Github与Git的关联
1.到Github注册账号。
2.本地配置用户名和邮箱(如果已经设置好,跳过该步):
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
3.生成ssh key
运行 ssh-keygen -t rsa -C "你的邮箱"
,它会有三次等待你输入,直接回车即可。
将生成的ssh key复制到剪贴板,执行 clip < ~/.ssh/id_rsa.pub (或者到上图提示的路径里去打开文件并复制):
4.打开Github
1.进入Settings点击左边的 SSH and GPG keys 。
2.将ssh key粘贴到右边的Key里面。Title随便命名即可。
3.测试一下吧,执行 ssh -T git@github.com
对于 oschina 的 “码云” ,执行 ssh -T git@git.oschina.net
对于 coding 的 “码市” ,执行 ssh -T git@git.coding.net
4.创建远程仓库并与本地关联
4.1在github创建仓库
4.2将远程仓库和本地仓库关联起来
有两种方式可以关联,一种是SSH,一种是HTTPS。由于HTTPS比较慢,所以推荐使用SSH。
注意SSH的地址格式是这样开头的: git@github.com
运行 git remote add origin 你复制的地址
如果你在创建 repository 的时候,加入了 README.md 或者 LICENSE ,那么 github 会拒绝你的 push 。你需要先执行 git pull origin master
。
执行 git push -u origin master
将本地仓库上传至Github的仓库并进行关联
关联已经完成!
以后想在commit后同步到Github上,只要直接执行 git push
就行啦: