1.git init
创建仓库
2.配置名字和电子邮件
$ git config --global user.name 'oldboy'
$ git config --global user.email 123456789@qq.com
3.git clone
使用 git clone 拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。
比如克隆github上的项目:
$ git clone git@github.com:oldboy-pro/stm32-example.git
4. git add
git add 命令可将该文件添加到缓存
git add test.c README.md
git add .
5.git status
git status 以查看在你上次提交之后是否有修改或者是否有未提交的文件
6.git diff
- git diff 查看当前代码与缓存里的修改
- git diff --cached 查看缓存和仓库的修改
- git diff HEAD 查看当前代码与仓库的修改
- git diff --stat 只列出概述,不显示详细
7.git commit
$ git commit -m "First"
加-a 直接直接更新缓存和仓库,一步到位
$ git commit -a -m "test"
$ git commit -am 'test'
在最后一次提交的基础上继续commit
$ git commit --amend
自动生成Change-Id和提交者的名字邮件
$ git commit -s
8.git reset
撤销仓库和暂存区,保留工作区:
$ git reset HEAD^
用仓库中的内容替换暂存区中的内容,工作区不变:
$ git reset HEAD
不难理解,其实HEAD代表的是当前版本,HEAD^代表上一版本,git reset HEAD
和git reset HEAD^
都是回退仓库和暂存区到某一版本,不过git reset HEAD
本来就是当前仓库,所以仓库内容不变。
用仓库中的文件替换工作区和暂存区中所有修改内容:
$ git reset --hard HEAD
9.git rm
从当前目录和缓存中删除文件
$ git rm test.c
如果文件修改了,没添加到缓存里,则需要加-f 强制删除
$ git rm -f test.c
如果只想删除缓存里的文件,保留工作目录里的这个文件,可以使用如下命令
$ git rm --cached test.c
删除一个目录下的所有文件和子文件夹,可以用递归删除
$ git rm -r *
10.git mv
改名文件,并且将这个改名放入暂存区
$ git mv [file-original] [file-renamed]
11.ssh-keygen
生成ssh key
ssh-keygen -t rsa -C "your_email@youremail.com"
12.git push
git remote add origin git@github.com:oldboy-pro/test.git
git push -u origin master
如果github上有与本地仓库不一样的地方,可以先
$ git pull --rebase origin master
13.杂记
git checkout --file
用暂存区种的文件替换工作区
git checkout HEAD --file
用仓库中的文件替换工作区和暂存区中指定的文件
git log
查看历史提交记录
git log -p
查看最后一次提交的修改内容
git log -p <file>
查看指定文件的提交历史
git branch
查看本地分支
git fetch origin branchName:branchName
拉取远程分支到本地并创建该本地分支
git checkout branchName
切换分支
git clean -n
查看会删除哪些untracked files
git clean -f
删除untracked files
git diff > test.patch
根据当前工作区修改生成patch
git apply test.patch
将patch导入工作区
checkout命令用于从历史提交(或者暂存区域)种拷贝文件到工作目录,也可用于切换分支