Git常用命令

Git经常用到的命令(更新20140619):

*******初始化:********

$ git config --global user.name "polarrwl"

$ git config --global user.email "polarrwl@163.com"

$ git init //工程目录初始化

$ git status    //查询状态

*******修改提交*******

$ git add xxxfile //暂存区(增加和修改)

$ git add xxxfile2 //暂存区

$ git add *.*    //当前目录所有文件(不包含文件夹)

$ git add *    //当前目录所有文件(包含文件夹)

$ git rm xxxfile //删除,暂存区

$ git commit -m "说明" //版本库

$ git diff HEAD -- xxxfile //工作区和版本库的比较,HEAD当前库版本,HEAD^上一个版本,直接输入SHA1也可以

$ git checkout .    //撤销所有修改

$ git reset --hard HEAD^ //恢复上一个版本

$ git reset --hard 3628164 //恢复指定SHA1计算的版本号

$ git checkout -- xxxfile //撤销修改(工作区)

*******查询日志:*******

$ git log --pretty=oneline //一行显示,配合git reset使用

$ git reflog   //查询历史命令

$ git log --graph --pretty=oneline --abbrev-commit   //图形方式

*******远程仓库:*******

$ ssh-agent bash --login -i //切换到agent登陆

$ ssh-keygen -t rsa -C "youremail@example.com" //生成rsa公私密匙对

$ ssh-add /c/Users/polarrwl/.ssh/gittests //动态添加rsa私匙,用于多个私匙使用

$ ssh -T git@github.com //进行验证

$ ssh -Tv git@github.com //详细检测,打印debug信息

$ git clone git@github.com:michaelliao/gitskills.git //从远程克隆到本地

$ git remote add origin git@github.com:polarrwl/gittest.git //关联远程的库

$ git remote add gittest2 /i/temp/20140609/gittest2    //关联到本地的另外一个库上

$ git remote //查看远程仓库的信息

$ git remote -v //查看远程更详细信息

$ git push -u origin master //推送(空的情况下的第一次推送)

$ git push -f -u origin master //强推,把远程的git目录覆盖掉

$ git push origin master //推送修改(主分支),本地master推送到远端的master(缺省)

$ git push origin master:branch1 //把本地的master分支提交到远程origin的branch1分支上,如果远程没有branch1分支,则创建

$ git push origin dev //推送其他分支(dev)

$ git fetch origin master:tmp //拉取远程的master分支到本地tmp分支,注意是本地分支

$ git fetch origin master //拉取远程的master分支到默认的本地远程分支origin/master中,远程有更新就可以考虑去fetch一下

$ git merge --no-ff -m "merge remote" origin/dev    //将远程origin/dev分支合并到当前分支

$ git checkout -b dev origin/dev    //创建远程的dev分支到本地dev分支,前提是clone中有

$ git pull    //执行当前分支的pull拉取动作,当远程被其他用户提交后,需要拉下来才能提交,自动merge

$ git branch --set-upstream dev origin/dev     //将分支dev和远程的origin/dev分支绑定起来,这样才能pull

$ git branch -r    //查看远程跟踪分支

$ git checkout --track -b refactored origin/refactored    //基于远程跟踪分支创建本地分支

*******分支管理*******

$ git checkout master //切换到主分支

$ git checkout dev //切换到dev分支

$ git checkout -b dev2 //创建并切换分支dev2

$ git branch dev2 //创建dev2分支但不切换分支

$ git branch //查看当前分支

$ git branch -r //列出远程分支

$ git branch -a //列出所有分支

$ git branche -d dev2 //删除分支

$ git branch -D feature-vulcan //强行删除分支,如果分支还没有被合并

$ git branch -d -r branchname //删除远程branchname分支

$ git merge dev2 //将dev2分支合并到当前分支

$ git merge --no-ff -m "merge with no-ff" dev2 //非fast-forward模式合并分支,创建新的节点

$ git mergetool foofile.txt //调用merge的合并工具打开冲突文件进行处理(当有冲突的时候)

$ git stash //储存当前分支工作现场

$ git stash list //查看当前分支的工作现场

$ git stash pop //恢复上一个储存的工作现场并清理stash list

$ git stash apply stash@{0} //多次stash,通过stash list找到对应的恢复

*******标签管理*******

$ git tag v1.0 //添加标签

$ git tag //查看标签

$ git tag v0.9 6224937 //给指定的commit id(log sha1值)打上标签

$ git show v0.1 //查看标签对应的信息

$ git -a tagname -m "blablabla..." //指定标签信息

$ git tag -d v0.1 //删除标签

$ git push origin v1.0 //推送标签到远程

$ git push origin --tags //一次性推送全部尚未推送的标签

$ git push origin :refs/tags/v0.9 //删除远程标签,前提是本地先删除 git tag -d xxxx

*******关联Diff和Merge工具*******

$ git config --global diff.tool bc3

$ git config --global difftool.bc3.cmd "\"c:/program files/beyond compare 3/bcomp.exe\" \"$LOCAL\" \"$REMOTE\""

$ git config --global difftool.prompt false

$ git config --global merge.tool bc3

$ git config --global mergetool.bc3.cmd "\"c:/program files/beyond compare 3/bcomp.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\""

$ git config --global mergetool.bc3.trustExitCode true

注意$的变量会被清空掉,所以需要在.gitconfig里面再修改下。

$ git mergetool foofile.txt //调用merge的合并工具打开冲突文件进行处理(当有冲突的时候)


转载于:https://my.oschina.net/u/184206/blog/280613

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值