Git命令

简易的命令行入门教程:

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

  1. 用户名和邮箱地址的作用
    用户名和邮箱地址是本地Git客户端的一个变量,不随git库而改变。
    每次commit都会用用户名和邮箱纪录。
    github的contributions统计就是按邮箱来统计的。

  2. 查看用户名和邮箱地址:
    $ git config user.name
    $ git config user.email

  3. 修改用户名和邮箱地址:
    $ 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。