Git使用
1. 设置git的本地配置信息
git config --global user.name "<姓名>"
git config --global user.email "<邮箱,统一使用公司邮箱>"
git config --global alias.co checkout #设置命令别名
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global color.ui true` #为git输出到终端的内容着色
notes:
提交后,用git diff HEAD -- readme.txt
命令可以查看工作区和版本库里面最新版本的区别:
命令git checkout -- readme.txt
意思就是,把readme.txt
文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt
自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt
已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit
或git add
时的状态。
用命令git reset HEAD file
可以把暂存区的修改撤销掉(unstage),重新放回工作区:
git rebase 重新base,把其他分支新添加的,作为补丁,添加到master分支中去。
http://git-scm.com/book/zh/v1/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E8%A1%8D%E5%90%88
Git - Your branch and 'origin/xxx' have diverged
Most easy way to solve - is to rebase commit C to the remote state: $ git rebase origin/branch_xxx The history will look like this:
http://serebrov.github.io/html/2012-02-13-git-branches-have-diverged.html
或者
git fetch origin
git reset --hard origin/master
重命名分支
git branch -m old_br new_br
或者
首先,你可以使用git cherry命令查看提交的分支的不同,也就是说你可以git cherry origin/master 查看,显示在当前分支origin/master下提交的状态,你将发现有1个版本库你忘记了提交。 http://blog.csdn.net/ikscher/article/details/43970477
git fetch 和 git pull的区别
http://blog.csdn.net/hudashi/article/details/7664457
git fetch:相当于是从远程获取最新版本到本地,不会自动merge
git pull:相当于是从远程获取最新版本并merge到本地
http://www.oschina.net/translate/git-fetch-and-merge?lang=eng
git ci --amend 修改上一次提交的git log,此次提交与上次提交合并算作一次提交
a)初始配置
在开发机10.3.17.87上,进行git config
git remote add origin ssh://USER@review.git.XXXXXXX:29418/XXXX
git fetch
git co master
git br --track developWeb origin/developWeb
b)本地代码改动
git add
git ci -m "xxxxxx"
使用git st 和 git log查看状态
c)提交到远程
scp -p -P 29418 USER@review.git.XXXXXXXXX:hooks/commit-msg .git/hooks/
git push origin HEAD:refs/for/developWeb
c.1)如果push失败
git fetch
git merge origin/developWeb
而后再git push origin HEAD:refs/for/developWeb
git fetch
d ) 查看与远程分支之间关系
git br -avv
git co filename 删除该文件中所有没有暂存和提交的改动,这个操作是不可逆的