Git 和 github入门

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

然后在本机电脑上

  1. 建立Git主文件夹
    mkdir dou_git

  2. 使用git init 建立本机的仓库
    cd dou_git
    git init myGitTest
    或者
    cd dou_git
    mkdir myGitTest
    cd myGitTest
    git init

  3. 来到 myGitTest目录
    ls -a
    可以看到隐藏文件.git
    说明已经初始化好了。

  4. 在仓库中加入新文件
    比如
    vi README
    vi sample.cpp
    在这两个文件内随便写入一些文字。然后
    git add README
    git add sample.cpp

  5. 将myGitTest的变化更新情况提交
    git commit -m "create a git project"
    -m 表示 附注一些提示信息

  6. 同步到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 fetchgit 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 addgit 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 addgit commit 且已git push
    git revert 用一个新的commit,来消除原先的commit
    revert 之后你的本地代码会回滚到指定的历史版本,这时你再 git push 即可以把线上的代码更新.
    即:
    git revert commit_id
    git push

实际上,对于想把本地代码回复到 历史的某一版本,用 git resetgit revert 都可以;
但是 ,用git reset 则会使以前的 历史版本以后的更改 丢失;
git revert 是用一个与历史版本相同的版本作为新的提交,所有每次的改动都不会丢失。

比较版本差别——git diff,可以参照博客:
http://www.cnblogs.com/wish123/p/3963224.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值