Git 和 github使用入门
参考了以下的博客
http://blog.csdn.net/wangjia55/article/details/8802490
http://blog.csdn.net/yhl_leo/article/details/50760140
http://blog.csdn.net/mchdba/article/details/12083965
学习在ubuntu环境下使用git。
在github上先建好一个 repository ——
myGitTest
首先设置git全局参数(github 账号)
git config --global user.name douhaoexia
git config --global user.email douhaoexia@163.com
然后在本机电脑上
建立Git主文件夹
mkdir dou_git
使用git init 建立本机的仓库
cd dou_git
git init myGitTest
或者
cd dou_git
mkdir myGitTest
cd myGitTest
git init
来到 myGitTest目录
ls -a
可以看到隐藏文件.git
说明已经初始化好了。在仓库中加入新文件
比如
vi README
vi sample.cpp
在这两个文件内随便写入一些文字。然后
git add README
git add sample.cpp
将myGitTest的变化更新情况提交
git commit -m "create a git project"
-m
表示 附注一些提示信息同步到GitHub
将github网页上的myGitTest仓库的URL拷贝下来,然后
git remote add origin https://github.com/dou/myGitTest.git
(只需在第一次操作时需要)
其中git remote add
表示添加远程库,库名为origin
最后提交更新
git push origin master
在git仓库建立之初就会有一个默认的master分支,
此处即将本地master分支跟踪到远程分支,当然你如果建立了其他分支,也可以用同样的方法去跟踪。
如果是改动文件并提交,同样是
git add
、
git commit
、
git push
的过程
另外,如果想从github上拷贝文件到本地仓库,可以用
git clone <版本库的网址> <本地目录名>
(本地目录名可省略,则会与网页上的目录名相同)
其他方面,如果github上的库存在着 本地的库中有差别或者不存在的文件,需要用到
git pull
如 git pull origin master
然后再进行
git push origin master
对于git pull
实际上但更推荐用git fetch
和git merge
来取代
git fetch origin master
git log -p master..origin/master
#比较差别
git merge origin/master
若出现“Please, commit your changes or stash them before you can merge”报错
则可以——
git stash
git pull
git stash pop
注意到如果发现远程库的网址并不是自己想提交的网址时(这是有可能的,比如直接从其他人的github上下载下来的文件,其.git对应的就是那个人的网址)
使用git remote -v
来查看远程库的网址。
如需更改,则用
git remote rm origin
git remote add origin [url]
详细的说明,可使用git remote --help
查看
误操作,需要版本回退,分三种情况:
参照博客
http://blog.csdn.net/kongbaidepao/article/details/52253774
http://blog.csdn.net/xiaoshan812613234/article/details/24780337
http://blog.csdn.net/java_huilong/article/details/52136475
http://yijiebuyi.com/blog/8f985d539566d0bf3b804df6be4e0c90.html
只用了
git add
git status
#先看一下add 中的文件
git reset HEAD
#如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD XXX/XXX/XXX.txt
#就是对某个文件进行撤销了用了
git add
和git commit
git log
查看节点
发现 commit_id
“commit xxxxxxxxxxxxxxxxxxxxxxxxxx”
那么可以:
git reset --hard HEAD^
#代表回退到上一次commit
git reset --hard HEAD~3
#代表回退三次
git reset --hard commit_id
#代表直接回退到commit_id 那一次用了
git add
和git commit
且已git push
了
git revert
用一个新的commit,来消除原先的commit
revert 之后你的本地代码会回滚到指定的历史版本,这时你再git push
即可以把线上的代码更新.
即:
git revert commit_id
git push
实际上,对于想把本地代码回复到 历史的某一版本,用 git reset
和 git revert
都可以;
但是 ,用git reset
则会使以前的 历史版本以后的更改 丢失;
而 git revert
是用一个与历史版本相同的版本作为新的提交,所有每次的改动都不会丢失。
比较版本差别——git diff
,可以参照博客:
http://www.cnblogs.com/wish123/p/3963224.html