标签 Git 下的文章

git 版本回退

git 版本回退

有这样一种场景: 用git commit几个版本,然后突然发现最近几次ci都有问题,准备取消。

G1 - G2 - G3 - B1 - B2 - B3

G1,G2,G3都是good commit,但是从B1开始,后面的B2,B3都是bad commit。现在要"撤销"几次commit回滚到G3。

理解HEAD

HEAD是git的当前commit的指针,具体含义如下

G1 - G2 - G3 - B1 - B2 - B3
           \    \    \    \-- HEAD
            \    \    \------ HEAD~1
             \    \---------- HEAD~2
              \-------------- HEAD~3

- 阅读剩余部分 -

git入门二(新建分支)

这一节讲下git的分支功能,分支功能是什么呢?其实这才是真正的软件版本管理核心,比如你的项目想添加一个的功能,但是这个版本是测试的,不一定上线,再或者想开发一个2.0版本专门用于某个场合。传统的做法就是把原来的项目代码,全部都复制一份。然后还傻乎乎地为了区别,把文件夹的名字分成1.0版本和2.0版本,别笑华哥,我之前开发OpenCDN就是这样的。到后来以至于我根本搞不清楚各个版本了,而且还浪费磁盘空间。总之看起来就是很不爽,但是用git可以解决版本控制的问题。

git通过增加分支的方法来实现,git默认的主分支就是master,可以用下面的命令查看。

git branch #查看分支
git branch new_branch #创建一个新的分支
git checkout new_branch #切换到新的分支
git checkout -d new_branch #删除分支

- 阅读剩余部分 -

git+github使用

1.在github上新建一个Repository,基本信息完成后记下git@github.com:xxx/xxx.git.
2.本地配置
用户名和邮件配置默认会在 ~/.gitconfig

#git config --global user.name "username"
#git config --global user.email wanghuafire@gmail.com

生成key,默认会在/root/.ssh/id_rsa.pub,把里面的所有内容都copy到github的accounting下面的ssh keys里面
#ssh-keygen -C 'wanghuafire@gmail.com' -t rsa

3.提交项目
#cd project_name
#git init
#git commit -m "test"
#git add .
#git remote add user_name git@github.com:xxx/xxx.git
#git push user_name master

user_name可以你自己指定

最初的时候我一直都是需要用户名和密码认证,提交失败,返回403,然后是error,可以修改在你项目目录下./git/config

url = https://github.com/xxx/xxx.git
==修改
url = git@github.com:xxx/xxx.git

然后在你github上git地址采用ssh提交就行了。

更新本地代码之后

#git status # 可以查看当前代码更新后状态,是否提交到仓库里了
#git add .
#git commit -m "test debug"
#git push user_name master

你就可以在github上面看得更改历史了