Git使用Windows
个人建议先照着缪雪峰的git教程跑一遍。
以下代码仅供快速查阅,不会详细解释。
非常好的教程:如何使用 Git 和 GitHub 来管理自己的代码
1、安装git,并设置
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
2、创建版本库
- 在你的电脑上创建一个文件夹(当然你也可以用鼠标右击建立)
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
- 通过git init命令把这个目录变成Git可以管理的仓库
(当前目录下多了一个.git的目录,不要手动修改它)
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
3、 放入你要管理的文件(譬如创建一个readme.txt文件)
- 把文件添加到仓库(这里被提交到缓冲区)
$ git add readme.txt
- 把文件提交到仓库
$ 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
4、文件管理
-
版本回退
$ git log
显示从最近到最远的提交日志
$ git log --pretty=oneline
显示从最近到最远的提交日志(简洁模式)
$ cat readme.txt
查看文件内容
$ git reset --hard HEAD^
把当前版本回退到上一个版本
$ git reset --hard HEAD~100
回退到往上100个版本
$ git reset --hard 1094a
回退到指定版本(1094a为版本的commit id的前几位,可以用$ git reflog
查到所有版本的commit id) -
工作区和暂存区
$ git status
查看一下状态,会告诉你哪些文件被修改(modified:),哪些在暂存区(Changes not staged for commit:),哪些只在工作区(状态是Untracked)
$ git add readme.txt
把文件放入暂存区
$ git commit -m "understand how stage works"
把文件从暂存区(stage)的修改提交到分支 -
管理修改
第一次修改 ->git add
-> 第二次修改 ->git add
->git commit
-
撤销修改
文件还在工作区(git checkout -- file
可以丢弃工作区的修改)
$ git status
->$ git checkout -- readme.txt
文件提交到暂存区了(git reset HEAD <file>
可以把暂存区的修改撤销掉(unstage),重新放回工作区)
$ git status
->$ git reset HEAD readme.txt
->$ git status
->$ git checkout -- readme.txt
-
删除文件
直接删除或者用命令$ rm test.txt
->$ git status
两个选择:确实要从版本库中删除该文件$ git rm test.txt
,并且给git commit($ git commit -m "remove test.txt"
);
另一种情况是删错了,很轻松地把误删的文件恢复到最新版本
(git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。)
$ git checkout -- test.txt
5、远程仓库
你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步(备份)
1、登陆GitHub,在右上角找到“Create a new repo”按钮,创建一个新的仓库
2、在Repository name填入learngit(与本地仓库名一样),其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库
3、现在,我们根据GitHub的提示,在本地的learngit仓库下运行命令:
$ git remote add origin git@github.com:michaelliao/learngit.git
把上面的michaelliao替换成你自己的GitHub账户名
添加后,远程库的名字就是origin,这是Git默认的叫法
4、下一步,就可以把本地库的所有内容推送到远程库上:
$ git push -u origin master
Counting objects: 20, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (15/15), done.
Writing objects: 100% (20/20), 1.64 KiB | 560.00 KiB/s, done.
Total 20 (delta 5), reused 0 (delta 0)
remote: Resolving deltas: 100% (5/5), done.
To github.com:michaelliao/learngit.git
* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.