- 在Linux上安装Git
sudo apt-get install git
- 设置仓库全局用户名和Email
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
- 初始化一个Git仓库
git init
- 添加文件到Git仓库,分两步:
- 使用命令把文件修改添加到暂存区;
git add <file>
注意,可反复多次使用,添加多个文件;
- 使用命令把暂存区的所有内容提交到当前分支
git commit -m < commit-message>
git commit命令,-m后面输入的是本次提交的说明
- 查看工作区的状态,
git status
- 查看暂存区和工作区的区别
git diff
- 查看版本库里面最新版本和工作区的区别
git diff HEAD -- <file>
- 回退版本
git reset --hard <commit_id>
在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
- 查看提交历史
git log
如果嫌输出信息太多,可以试试加上--pretty=oneline参数:
git log --pretty=oneline
- 查看命令历史
git reflog
- 丢弃工作区的修改
# 丢弃工作区某个文件的修改
git checkout -- <file>
# 丢弃工作区所有的文件修改
git checkout .
命令git checkout -- <file>意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
- 一种是file自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
- 一种是file已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
- 把暂存区的修改撤销掉(unstage),重新放回工作区
git reset HEAD <file>
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本
- 删除一个文件
git rm
如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
- 复制一个特定的提交到当前分支
git cherry-pick <commit-id>
- 删除未跟踪文件
想批量删除branch中新加的文件(untracked files),git reset --hard不行
# 删除 untracked files
git clean -f
# 连 untracked 的目录也一起删掉
git clean -fd
# 连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
git clean -xfd
# 如果git submodule中也存在需要删除的文件那么需要再加个-f
git clean -dff
# 在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
git clean -nxfd
git clean -nf
git clean -nfd
网友评论