Git学习

(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 init
默认情况下是看不到.git目录的,我们必须选择显示隐藏文件才能看到。
git init

(2)也可以使用git init dirname在当前目录下创建dirname文件夹,并在该文件夹下生成.git目录。
git init testinit
在test local git下会出现新的目录testinit。
git init testinit
进入testinit可以看到隐藏的.git目录。
git init testinit

4.基本操作
先使用前面介绍的git init创建仓库,然后使用touch a.txt创建新的文件a.txt,再使用git status查看当前工作区的状态。
Git学习_第1张图片
可以发现a.txt属于untracked file,也就是说不在暂存区中。

使用git add filename指令,将a.txt添加到暂存区中。
Git学习_第2张图片
可以发现a.txt现在属于暂存区中的文件了,但尚不属于版本库中的文件。这里我们可以选择git rm --cached filename从暂存区中删除a.txt,也可以使用git commit filename -m 'message’把它提交到版本库中。

使用git rm --cached a.txt。
Git学习_第3张图片
可以发现a.txt已经不在暂存区中了,如果要重新添加回暂存区则需要使用git add命令。

使用git commit a.txt -m ‘message’。
Git学习_第4张图片
我们发现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就不用输入用户名和密码了。

你可能感兴趣的:(本科时的小白文,git)