Git使用
1、创建空目录
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
pwd用于显示当前目录
2、初始化仓库
git init
Initialized empty Git repository in /Users/michael/learngit/.git/
ls -ah 查看隐藏文件
3、添加文件至版本库
将新建的文件放置在新建的仓库learngit目录下
3.1、 添加
$ git add readme.txt
3.2、 提交
$ $ git commit -m "wrote a readme file"
[master (root-commit) eaadf4e] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt
3.3、 状态
$ git status
3.4、 修改的地方
$ git diff
3.5、 历史记录
$ git log
或者
$ git log --pretty=oneline
成行显示
4、 版本回退
$ git reset --hard HEAD^
git 中HEAD表示当前版本, HEAD^^ 表示上一个版本,HEAD^^ 表示上上个版本,依次类推
当然若回退版本过多,写 ^^ 容易出错,可用 HEAD~100 ,往上100个版本。
git reset --hard c87d5c3
c87d5c3即为之前提交GPL时的ID, 可以不必写全,但也不能写一两位,避免重复
5、 命令记录
$ git reflog
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset –hard commit_id。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
6、 工作区、暂存区
git add 实际上是把当前所有修改都添加到暂存区
git commit 就可以一次性把暂存区的所有修改提交到分支
7、 Git管理修改
第一次修改 -> git add -> 第二次修改 -> git commit
上述操作最终只提交了 第一次修改,第二次并未提交,因为第二次修改并未add到暂存区
第一次修改 -> git add -> 第二次修改 -> git add -> git commit
此操作代表两次都已经提交
8、 撤销修改
丢弃工作区的修改
$ git checkout -- readme.txt
暂存区修改撤销,放回工作区
$ git reset HEAD readme.txt
9、 删除文件
$ git rv readme.txt
10、 添加远程仓库
连接远程仓库,server-name即为Github账户名
$ git remote add origin git@server-name:path/repo-name.git
第一次推送
$ git push -u origin master
后续修改推送
$ git push origin master
11、 克隆远程仓库
$ git clone git@github.com:michaelliao/gitskills.git