本例子是参照 廖雪峰的官方网站 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。 %%%%%%%%%%%