简易的命令行入门教程:
Git 全局设置:
git config –global user.name “xxxxdev”
git config –global user.email “xxxx.dev@gmail.com“
创建 git 仓库:
mkdir backend-movie
cd backend-movie
git init
touch README.md
git add README.md
git commit -m “first commit”
git remote add origin git@gitee.com:xxxxdev/backend-movie.git
git push -u origin master
已有项目?
cd existing_git_repo
git remote add origin git@gitee.com:xxxxdev/backend-movie.git
git push -u origin master
用户名和邮箱地址的作用
用户名和邮箱地址是本地Git客户端的一个变量,不随git库而改变。
每次commit都会用用户名和邮箱纪录。
github的contributions统计就是按邮箱来统计的。查看用户名和邮箱地址:
$ git config user.name
$ git config user.email修改用户名和邮箱地址:
$ git config –global user.name “username”
$ git config –global user.email “email”
clone命令:
选择分支—
$ git clone “url地址”
push命令:
进入项目所在文件夹
$ git init 初始化仓库
$ git add . 或者 $git add –all
$ git commit -m “change log”
(提交到本地的版本控制库里,引号里面是你对本次提交的说明信息。)
git remote add origin git@gitee.com:xxxxdev/backend-movie.git(关联远端仓库)
git fetch(取回远端更新)
git merge(取回更新和本地合并)
$ git push -u origin master
git status
git branch
git branch + 分支名称
git checkout + 分支名称
$ git clone https://github.com/xxxxdev/wjs (最后面不加点,把所有分支都克隆下来)
$ git branch -a 查看所有分支
$ git checkout -b gh-pages origin/gh-pages (在本地创建并选择那个和远程分支名一样的分支工作)
你可以用gitk查看你做了些什么:
$ gitk –all &
1 | git clone |
2 | git remote |
3 | git fetch |
4 | git pull |
5 | git push |
如果你在本地做了错误提交,那么回退版本的方法很简单`
1.先用下面命令找到要回退的版本的commit id:
git reflog
2.接着回退版本:
git reset –hard a7e1d279
a7e1d279就是你要回退的版本的commit id的前面几位。
####远程分支版本回退的方法
如果你的错误提交已经推送到自己的远程分支了,那么就需要回滚远程分支了。
1.首先要回退本地分支:
git reflog
git reset –hard Obfafd
2.紧接着强制推送到远程分支:
git push -f origin master 这里假设只有一个master分支
Git将当前分支上修改的东西转移到新建分支
1 | 比如我在A分支做了一些修改,现在由于某种原因(如A分支已经合并到master)不能把A分支上修改的东西保留下来但是需要把A分支上修改的东西继续在新分支继续修改。那么现在我们可以有两种简单的做法完成这一需求。 |
2 | |
3 | 第一种方法 |
4 | 我们不需要在A分支做commit,只需要在A分支新建B分支,然后切换过去。这个时候你会发现修改的东西在A,B分支都有。这个时候在B分支commit,那么这些修改保留在B分支上,再切换到A分支上会发现修改都没有保留下来。 |
5 | |
6 | 第二种方法 |
7 | 使用git stash 将A分支暂存起来,然后在某一个分支(如master分支)新建一个分支B,然后在B分支上使用git stash pop 将修改弹出到B分支上,然后这些修改就在B分支上了。 |
如何在 Git 里撤销(几乎)任何操作
http://blog.jobbole.com/87700/ (总结得一般)
Another git process seems to be running in this repository
1 | Another git process seems to be running in this repository, e.g. |
2 | an editor opened by 'git commit'. Please make sure all processes |
3 | are terminated then try again. If it still fails, a git process |
4 | may have crashed in this repository earlier: |
5 | remove the file manually to continue. |
解决办法:
Try deleting index.lock
file in your .git
directory.
1 | rm -f .git/index.lock |
git命令行删除远程分支
1 | 先查看远程分支 |
2 | git branch -r |
3 | 使用下面两条命令来删除远程分支 |
4 | git branch -r -d origin/branch-name |
5 | git push origin :branch-name |
一不小心把本地的临时分支push到server上去了,想要删除。
方法一:
1 | git branch -r -d origin/branch-name |
不成功,发现只是删除的本地对该远程分支的track,正确的方法应该是这样:
1 | git push origin :branch-name |
冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支。
方法二:
在Git v1.7.0 之后,可以使用这种语法删除远程分支:
1 | $ git push origin --delete <branchName> |
删除tag这么用:
1 | git push origin --delete tag <tagname> |
Git 中的Tag的作用
首先说一下作用:Git 中的tag指向一次commit的id,通常用来给开发分支做一个标记,如标记一个版本号。
下面就说一下具体的用法:
1.添加标签: git tag -a version -m “note”
注解:git tag 是打标签的命令,-a 是添加标签,其后要跟新标签号,-m 及后面的字符串是对该标签的注释。
2.提交标签到远程仓库 :git push origin -tags
注解:就像git push origin master 把本地修改提交到远程仓库一样,-tags可以把本地的打的标签全部提交到远程仓库。
3.删除标签:git tag -d version
注解:-d 表示删除,后面跟要删除的tag名字
4.删除远程标签:git push origin :refs/tags/version
注解:就像git push origin :branch_1 可以删除远程仓库的分支branch_1一样, 冒号前为空表示删除远程仓库的tag。