[关闭]
@ssyue 2016-11-24T08:30:32.000000Z 字数 2029 阅读 883

Git 学习笔记

Git 计算机


git图解

1.一般步骤

1.1第一步

去到你想要做版本控制的文件夹(最好是空的),打开git shell, 输入git init来初始化,就是声明,我现在要对这个文件夹监管啦!

1.2第二步

在这个文件夹里开始do what you want!,添加文件,修改文件之类的,修改完之后,在git shell里输入git add >你修改(添加)的文件名,带后缀<比如git add file1.txt file2.txt.

Hint0:git rm >文件名(带后缀)<删除文件。

Hint1:
- 不管何时,你都可以用命令git status查看当前仓库的状态。
- 在git add之前,可以用命令git diff >你修改(添加)的文件名,带后缀<查看具体变化。

1.3第三步

Add 完之后,git commit -m ">为此次修改写的注释<"

1.3.1HINTS

Hint2:
- git log --pretty=oneline可以查看日志。
- 每个版本(每commit一次,产生一个新版本,)都有一个commit id,
- HEAD代表当前版本的commit id,HEAD^代表上一次版本的id。
- git reset --hard HEAD^回退到上一个版本。(HEAD^也可以换成id)
- git reflog查看历史命令。

2.撤销修改

2.1未git add

修改了文件,不过还没有git add, 要撤销修改,则输入git checkout -- >文件名称(带后缀)<

2.2已git add,未git commit

修改了文件,git add过了,不过还没有git commit, 要撤销修改,则先输入git reset HEAD >文件名称<,退回到git add之前的状态(即情况一),再git checkout -- >文件名称(带后缀)<,完全撤销修改。

2.3已git add,已git commit,未推送到远端

修改了文件,git add过了,也git commit过了,不过还没有把自己的本地版本库推送到远程。这就要用git reset --hard HEAD^.

3.与远端同步

以上只是在你的本地电脑修改了你的仓库,如果想与你的github账户上的repository同步,或者说备份到网上的话,就要有以下步骤:

3.1 先有本地库,后有远程库

本小节讲了先有本地库,后有远程库的时候,如何关联远程库。

3.1.0第0步

创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
ssh-keygen -t rsa -C "ssyue@whu.edu.cn"

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
接下来可以参考教程

3.1.1第一步

git remote add origin git@github.com:WHU-SSYUE/git-try.git
origin 是你的远端的代号,可以随意修改。

3.1.2第二步

git push -u origin master 把本地的master分支推送到远端origin上去,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改。

3.2先创建远程库,再从远程库克隆

去到你想要克隆到的地方,打开命令行
git clone git@github.com:WHU-SSYUE/gitskills.git

4.1 分支管理

现在才是git真正优势的地方,git分支管理允许多人协同工作。

git branch产看当前分支。
git checkout -b >新建分支名<等价于git branch >新建分支名<+git checkout >新建分支名<创建并切换到新分支。

在新分支git commit完之后,git checkout master回到master分支。
现在,我们把dev分支的工作成果合并到master分支上:
git merge newbranch

合并完成后,就可以放心地删除dev分支了:
git branch -d newbranch

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注