(windows下安装git请自行百度,这里只mark一下git的操作~)
这里提供一个安装的教程:http://www.cnblogs.com/xinlj/p/5978730.html
(TortoiseGit是一个免费的git版本控制软件,我们需先安装msysgit)
(文中有些符号 – 表示的其实是 - -,有两个横杠)
(1)资料
菜鸟教程:http://www.runoob.com/git/git-tutorial.html
(2)本地仓库
1.准备工作
在任意位置新建一个文件夹,这里取名叫test local git。
进入该文件夹,右键选择git bash here打开命令行窗口。
2.注册用户名和邮箱
使用
git config --global user.name “username”
git config --global user.email “email”
去初始化/修改用户名和邮箱。
使用
git config user.name
git config user.email
可以查看已注册的用户名和邮箱。
3.创建git仓库
(1)可以使用git init在当前目录下生成.git目录。
默认情况下是看不到.git目录的,我们必须选择显示隐藏文件才能看到。
(2)也可以使用git init dirname在当前目录下创建dirname文件夹,并在该文件夹下生成.git目录。
在test local git下会出现新的目录testinit。
进入testinit可以看到隐藏的.git目录。
4.基本操作
先使用前面介绍的git init创建仓库,然后使用touch a.txt创建新的文件a.txt,再使用git status查看当前工作区的状态。
可以发现a.txt属于untracked file,也就是说不在暂存区中。
使用git add filename指令,将a.txt添加到暂存区中。
可以发现a.txt现在属于暂存区中的文件了,但尚不属于版本库中的文件。这里我们可以选择git rm --cached filename从暂存区中删除a.txt,也可以使用git commit filename -m 'message’把它提交到版本库中。
使用git rm --cached a.txt。
可以发现a.txt已经不在暂存区中了,如果要重新添加回暂存区则需要使用git add命令。
使用git commit a.txt -m ‘message’。
我们发现a.txt已经被添加到版本库中了。
(git commit -am 'message’是将所有已经add过的文件提交到版本库中)
5.git diff
git diff:工作区与暂存区的不同
git diff --cached:暂存区与版本库的不同
git diff HEAD:工作区、暂存区与版本库的不同
git diff --stat:显示摘要不显示详细信息
6.git reset
git reset HEAD/HEAD^^^/HEAD~3/commit id
将版本库的内容覆盖暂存区的内容,但不覆盖工作区的内容。
git reset --hard HEAD/HEAD^^^/HEAD~3/commit id
将版本库的内容覆盖暂存区和工作区的内容。
git log
查看commit日志
git reflog
查看操作日志
7.git rm
git rm filename从工作区和暂存区中删除文件(-f 强制删除)
git rm --cached filename从暂存区中删除文件
8.git mv
git mv oldfilename newfilename(oldfilename必须已经add过)
将oldfilename从暂存区中删除,将工作区的文件重命名,然后再把新文件add到暂存区中。
9.git checkout
git checkout branch切换分支
git checkout filename用暂存区的文件覆盖工作区的文件
git checkout HEAD filename用当前分支的文件覆盖工作区和暂存区的文件
git checkout branch filename用branch的文件覆盖工作区和暂存区的文件
git checkout . 用暂存区的全部文件覆盖工作区
10.分支管理
git branch列出分支
git branch branchname创建分支
git checkout branchname切换分支(用target branch的内容覆盖工作区和暂存区)
git checkout -b branchname创建分支并切换过去
git branch -d branchname删除分支(fully merged)
git branch -D branchname强制删除分支
git merge branchname与目标分支合并
(合并冲突则需手动解决冲突,然后git add告知)
(3)远程仓库
这里我们使用Github作为远程仓库的服务器。
基本流程请参考:
http://www.runoob.com/w3cnote/android-tutorial-git-repo-create.html
主要的操作有git clone, git push, git pull, git fetch等。
git fetch是将远程仓库的内容更新到本地,不会自动merge。
git pull是更新后会自动merge。
git clone会自动创建远程目录。
git remote可以查看当前的远程目录。
git remote rm remotename可以删除remotename远程目录
git remote add remotename url可以添加新的远程目录
git remote set-url remotename url可以修改remotename的地址
mkdir /.ssh(表示/c/Users/Administrator)
cd ~/.ssh
ssh-keygen -t rsa -C ‘username’
要求输入文件名,直接回车,要求输入两次密码。用户名和密码都正确的话,以后再git push就不用输入用户名和密码了。