首页 > 代码库 > Git常用指令
Git常用指令
根据廖雪峰的Git教程整理而来
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心。 注意gitconfig命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
git中的命令
git init #初始化一个git仓库
git add filename #添加如果各文件到git仓库
git status #查看当前工作区的状况,一般还会给你建议
git diff readme.txt #readme.txt 被修改后还没被add、commit,这时可以比较不同点
git log #由近到远显示commit id + commit message
git log --pretty=oneline #一行显示一条commit记录
git reset --hard HEAD^ #返回上一个历史版本
git reset --hard 7bit_id HEAD表示当前的版本,HEAD^^表示上上一个版本,HEAD~100表示之前的第100个版本,其实就是一个指针
git reflog --pretty=oneline #显示在某个仓库中使用过的命令历史记录,每个后面都有一个commitid,这样可以回到已经去过的未来
理解 working flow, stage(index)的概念,以提交一次文件(的两步)为例说明上面的过程。
git checkout -- readme.txt 有两个作用:
i)如果仅仅想撤销工作区的修改,可以使用这个命令
ii)如果工作区中的readme.txt文件被删除了,那么可以使用这个这个命令吧stage中的这个回复文件衣服到工作区。
git reset HEAD readme.txt
如果readme.txt在工作区的修改已经add到了stage,这时可以用这个指令。
让后在使用checkout 指令,撤销工作区中的修改。不能直接使用checkout命令
ssh-keygen -t rsa -C "1373779753@qq.com" #生成 SSH Key
clip < ~/.ssh/id_rsa.pub #把公共密钥拷贝到剪贴板。
git remote add origin git@server-name:path/repo-name.git #关联一个远程库
git push -u origin master 第一次推送master分支的所有内容
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改
git checkout -b dev #创建一个新分支之后,-b参数表示切换到新分支上。
其实上面相当于下面两条命令,仔细观察上面的符合指令符合右结合的特性。
git branch dev
git checkout dev
git branch #查看当前分支
git branch命令会列出所有分支,当前分支前面会标一个*号
git branch dev #创建分支dev
git checkout branch-name #切换分支到dev
git checkout -b name #创建加切换分支 一块 dev
git merge name #dev
git branch -d dev #删除分支dev
当合并分支发生冲突时,打开冲突的文件,修改,然后在add->commit之后冲突就会修复
$ git log --graph --pretty=oneline --abbrev-commit #查看分支合并图
git merge --no-ff -m "merge with no-ff" dev
强制关闭fast-forward模式,然后合并dev分支,并提交一个commit
这种合并的好处是,可以使用git log --graph 产看到合并图,而fast-forward则不行
git stash #当前分支上面的工作还没做完不能提交,但是又必须要离开,就可以使用这个指令来保存现场
git stash list #查看所有的保存点
回复stash保存的工作现场的方法:
git stash apply stash@{0} #恢复到stash@(0) 工作现场
git stash drop stash@{0} #删除{0}工作现场
或者下一条指令,直接完成上面两部的工作:
git stash pop
如果要丢弃一个没有被合并过的分支,可以通过
git branch -D branch-name 强行删除
git remote -v 查看远程库信息
本地新建的分支如果不推送到远程,对其他人就是不可见的;
git push origin branch-name #本地推送分支
如果推送失败,Git 会提醒先用git pull抓取远程的新提交
git checkout -b branch-name origin/branch-name #在本地创建和远程分支对应的分支
本地和远程分支的名称最好一致。
git branch --set-upstream branch-name origin/branch-name #建立本地分支和远程分支的关联
git pull #远程抓取分支,抓取下来的远程分支如果和本地有冲突,要先处理冲突
git tag tagName #用于创建一个标签,默认为HEAD指定的commit 可以通过commit id来指定
git tag -a tagName -m "blablabla..." #可以指定标签信息
git tag -s tagname -m "blablabla..." #可以用PGP签名标签
git tag #可以查看所有标签
git push origin <tagname>可以推送一个本地标签
git push origin --tags可以推送全部未推送过的本地标签
git tag -d <tagname>可以删除一个本地标签
git push origin :refs/tags/<tagname>可以删除一个远程标签 如果一个标签已经推送到了远程,要想删除远程的标签的话:分两步:先删除本地的标签,再删除远程的标签
Git常用指令