本例子是参照 廖雪峰的官方网站 git教程
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
0》安装 sudo apt-get install git
安装后设置
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
1》首先要新建一个文件
2》初始化一个Git仓库,使用git init命令。
3》添加文件到Git仓库,分两步:
第一步,使用命令git add ,注意,可反复多次使用,添加多个文件;
第二步,使用命令git commit,完成。
4》随时掌握工作区的状态,使用git status命令。
如果git status告诉你有文件被修改过,用git diff可以查看修改内容。
5》
(1)git log可以查看历史版本的记录,还可以看到当前的状态
还可以用 git log --pretty=oneline
(2)回退到上一个版本
git reset --hard HEAD^
注释:上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较
容易数不过来,所以写成HEAD~100。
(3)git reflog
查看以前的每一次命令,就可以查看到相对应的ID 数值
git reset --hard 3628164
这样的做法是可以穿越到“未来”的版本
6》 工作区:当前目录下除了.git文件都是工作区文件
版本库:.git文件
暂存区 .git文件 中stage区域,要提交的文件首先都放在这里,然后全部提交,status
命令里面显示的信息都是暂存区的,提交之后就什么都看不见了
7》 git checkout -- readme.txt
总之,就是让这个文件回到最近一次git commit或git add时的状态,还没有add
git reset HEAD readme.txt
用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),
重新放回工作区:
这个跟着还要用git checkout -- readme.txt
8》关于删除
一般情况下, $ rm test.txt
如果确实要删掉那就连同版本库里面的一起删掉并且提交
$ git rm test.txt
rm 'test.txt'
$ git commit -m "remove test.txt"
如果是删除错了,那就
$ git checkout -- test.txt
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,
都可以“一键还原”。
命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,
那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,
你会丢失最近一次提交后你修改的内容。
'$ ssh-keygen -t rsa -C "youremail@example.com"
vim ~/.ssh/id_rsa.pub ==key
9》创建远程库,根据提示关联远程库和本地库
'$ git remote add origin git@*********************
本地库内容推送到远程库 git push -u origin master
我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。,以后本地作了提交,就可以通过命令:git push origin master
10》从远程库克隆
$ git clone 地址
11》查看分支:git branch
创建分支:git branch name
切换分支:git checkout name
创建+切换分支:git checkout -b name
合并某分支到当前分支:git merge name
删除分支:git branch -d name
12》要查看远程库的详细信息
' $ git remote -v
推送分支,比如dev/master
' $ git push origin dev
多人协作的工作模式通常是这样:
首先,可以试图用git push origin branch-name推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。
%%%%%%%%%%%