一、本地仓库操作
1、构建本地仓库
- 初始化本地仓库,生成.git隐藏文件
$ git init - 在文件夹内添加readme.md文件,执行如下命令,添加到本地仓库暂存区
$ git add readme.md - 提交到本地仓库
$ git commit -m “add readme.md”
2、添加、提交
- 修改readme.md文件,查看本地代码的状态(与本地仓库对比)
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: readme.md
no changes added to commit (use "git add" and/or "git commit -a")
- 查看具体差异
$ git diff
diff --git a/readme.md b/readme.md
index d1d06ad..a3e18d9 100644
--- a/readme.md
+++ b/readme.md
@@ -1 +1 @@
-1111
\ No newline at end of file
+11112222
\ No newline at end of file
- 将本地修改添加到本地仓库
$ git add . - 查看状态
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: readme.md
- 提交修改到本地仓库
$ git commit -m “modify readme.md”
[master 3350af9] modify readme.md
1 file changed, 1 insertion(+)
- 再次查看状态,发现已经与本地仓库相同了
$ git status
On branch master
nothing to commit, working tree clean
- 删除文件
第一种,实际上删除也是一种修改,所以可以删除本地文件,然后用上面的add+commit的方式
第二种
$ git rm readme.md
$ git commit -m “delete readme.md”
3.查看日志,回退
- 查看历史日志
- $ git log 命令或者 $ git log --pretty=oneline
27943fdf37d8767bdc87fb496f7c2f006a23b953 (HEAD -> master) modify readme.md
3350af9b900fd0d1bef70daf3742dc65c9ca4c98 modify readme.md
ff61e65f4a1c4fc70fd4f313c065ec29c6cf647e add readme.md
- 回退到上一个版本:HEAD代表当前版本,HEAD^是上一个版本,以此类推;也可以用 commit id 如”ff61e65f4a1c4fc70fd4f313c065ec29c6cf647e”的前几位(能代表唯一性)代替。
$ git reset –hard HEAD^
HEAD is now at 3350af9 modify readme.md
- 查看文件状态,发现已经回退到上一个版本
$ cat readme.md
1111
- 再次查看log,发现上一个版本的log已经没了
$ git log –pretty=oneline
3350af9b900fd0d1bef70daf3742dc65c9ca4c98 modify readme.md
ff61e65f4a1c4fc70fd4f313c065ec29c6cf647e add readme.md
- 根据commit id再回退到原来的版本,发现修改又回来了
$ git reset –hard 27943
$ cat readme.md
11112222
2323232
- 查看操作记录,根据操作记录就可以回退到任意版本了
$ git reflog
27943fd HEAD@{0}: reset: moving to 27943
3350af9 HEAD@{1}: reset: moving to HEAD^
27943fd HEAD@{2}: commit: modify readme.md
3350af9 HEAD@{3}: commit: modify readme.md
ff61e65 HEAD@{4}: commit (initial): add readme.md
- 将暂存区的修改撤销掉
首先对readme.md进行修改,添加到暂存区
$ git add readme.md
$ git status
$ git reset HEAD readme.md
- 丢弃工作区的修改
$ git checkout – readme.md
二、远程仓库
1、将本地仓库添加到远程仓库
查看本地remote origin是否存在(origin是对远程库的别称)
$ git remote -v如果不存在,则添加
$ git remote add origin http://192.168.1.222/wei/Test.git关联远程分支
$ git branch –set-upstream master origin/master接下来,就可以直接向已有的远程仓库提交代码啦
$ git add .
$ git commit -m “msg”
$ git push更新origin
$ git remote rm origin
$ git remote add origin 新地址.git
$ git branch –set-upstream master origin/master查看origin配置,还可以通过查看config文件来查看origin的配置
$ vi .git/config
2、从远程仓库克隆到本地仓库
- 首先在远程仓库上创建一个项目,注意项目中一定要有内容,最少有readme.md
$ git clone http://192.168.1.222/wei/Test.git