git操作教程
Posted huih
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git操作教程相关的知识,希望对你有一定的参考价值。
首先就是创建码云(用户名不能是中文),然后新建一个项目(用户名/项目名都不能是中文)。
一、在Windows上安装Git
1.从http://msysgit.github.io下载,然后按默认选项安装即可,安装完成后,在开始菜单里找到“Git”->“Git Bash”;
2.安装完成后,还需要最后一步设置,在命令行输入:
$ git config --global user.name "your name" (your name由自己命名)
$ git config --global user.email "email@example.com" (自己的邮箱)
二、创建版本库
1.选择一个合适的地方,创建一个空目录
$ mkdir learngit
$ cd learngit
$ pwd pwd命令用于显示当前目录
2.通过 git init 命令把这个目录变成git可以管理的仓库:
$ git init
三、把文件添加到版本库
1.用命令 git add告诉Git,把文件添加仓库:
$ git add xx.txt
2.第二步,用命令 git commit 告诉Git,把文件提交到仓库:
$ git commit -m "xx.txt"(添加文件)
-m 后面输入的是本次提交的说明,可以输入任意内容。
3. $ git status 查看仓库当前的状态(文件有没有被修改过)
$ git diff xx.txt 可以查看修改内容
4.提交后,用“git diff head --xxx.txt” 命令可以查看工作区和版本库里面最新版本的区别。
四、版本回退
1.穿梭前,用 $ git log 可以查看提交历史
$ git log --pretty=oneline --abbrev-commit
2.回退到上一个版本:使用 git reset命令
$ git reset --hard HEAD^
3.查看文件内容:$ cat xx.txt
4.回到先前版本:
$ git reset --hard 3628164(数字为先前版本序列号<不必全写>)
5.要重返未来,用 git reflog 查看命令历史
五、撤销修改
1.git checkout --file 可以丢弃工作区的修改:
$ git checkout -- xx.txt
命令git checkout -- xx.txt 意思就是把xx.txt文件在工作区的修改全部撤销。
六、删除文件
1. rm命令删除文件
$ rm xx.txt
2.把误删的文件恢复到最新版本:
$ git checkout -- xx.txt
七、远程仓库
1.创建SSH Key。在用户目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"(自己的邮箱)
在用户目录找到.ssh目录,里面有id_rea和id_rsa.pub两个文件,这两个就是SSH Key的密钥对,id_rsa是私钥,id_rsa.pub是公钥。
2.登陆GitHub,打开“Account settings”,“SSH Keys”页面。然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rea.pub文件的内容,点“Add Key”,你就应该看到已经添加的key。
八、添加远程仓库
你已经在本地创建了一个git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步。
1.首先,登陆GitHub,然后,在右上角找到 “Create a new repo” 按钮,创建一个新的仓库 Repository name 填入 learngit,其他保持默认设置,点击“Create repository”按钮,就成功创建了一个新的git仓库。
2.把本地仓库的内容推送到GitHub仓库
$ git remote add origin git@github.com:hui/learngit.git
把上面的hui替换成你自己的GitHub账户名
3.把本地库的内容推送到远程,用 git push ,实际上是把当前分支master推送到远程。
$ git push origin master
$ git push -u origin master 第一次推送master分支的所有内容。
九、从远程仓库克隆
用命令 git clone 克隆一个本地库:
$ git clone git@github.com:GitHub名/仓库名.git
$ git clone https://gitee.com/GitHub名/仓库名.git
十、分支管理
1.创建name分支,然后切换到name分支
$ git checkout -b name (name为创建的新分支名)
git checkout 命令加上-b参数表示创建并切换
创建分支:$ git branch name
切换分支:$ git checkout name
2.git branch 命令查看当前分支
$ git branch
git branch 命令会列出所有分支,当前分支前面会一个*号
3.git merge 命令用于合并指定分支到当前分支
$ git merge name
4. 删除name分支
$ git branch -d name
5.用 git log --graph 命令可以看到分支合并图
$ git log --graph --pretty=oneline --abbrev-commit
6.--no-ff参数,表示禁用“Fast forward”(这种模式下,删除分支后,会丢掉分支信息)
$ git merge --no-ff name
十一、Buf分支
1.修复bug分支时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;当手头工作没有完成时,先把工作现场 git stash 一下,然后去修复bug,修复后,再 git stash pop ,回到工作现场。
$ git stash (可以把当前工作现场“后台化”起来,等以后恢复现场后继续工作)
2.用 git stash list 命令查看先前工作存储路径
$ git stash list
恢复先前工作界面:
一是用 git stash apply 恢复,但是恢复后,stash内容并不删除,你需要用 git stash drop 来删除;
$ git stash apply
$ git stash drop
另一种方式是用 git stash pop,恢复的同时把stash内容也删了。
$ git stash pop
十二、Feature分支
开发一个新feature,最好新建一个分支;如果要丢弃一个没有被合并过的分支,可以通过 git branch -D name强行删除。
十三、多人协作
1.查看远程库的信息,用 git remote:
$ git remote
用 git remote -v显式更详细的信息:$ git remote -v
2.推送分支,就是把该分支的所有本地提交推送到远程库
$ git push origin name
3.创建远程origin的分支到本地
$ git checkout -b 分知名 origin/分支名
4.用 git pull 把最新的提交从origin/分知名抓下来,然后在本地合并,解决冲突
$ git pull
5.设置本地分支与远程origin/dev分支的链接
$ git branch --set-upstream 分支名 origin/分支名
6.从远程抓取分支,使用 git pull ,如果有冲突,要先处理冲突。
十四、标签管理
1.创建标签
首先,切换到需要打标签的分支上
$ git branch
$ git checkout 分支名
然后,敲命令 git tag name就可以打一个新标签
$ git tag v1.0 (v1.0为标签名)
可以用命令 git tag 查看所有标签:$ git tag
2.给之前的文件加标签,首先找到历史提交的文件
$ git log --pretty=oneline --abbrev-commit
然后敲入:
$ git tag v0.9 文件的id
3.用 git show tagname 查看标签信息:
$ git show v0.9
4.创建带有说明的标签,用-a 指定标签名,-m指定说明文字
$ git tag -a v0.1 -m "内容" 3628164
5.通过 -s 用私钥签名一个标签
$ git tag -s v0.2 -m "内容" fec145a
签名采用PGP签名,因此,必须首先安装gpg(GunPG),如果没有找到gpg,或者没有gpg密钥对,就会报错。
6.操作标签
1)删除标签
$ git tag -d v0.1
2)如果要推送某个标签到远程,使用命令 git push origin tagname
$ git push origin v1.0
或者,一次性推送全部尚未推送到远程的本地标签
$ git push origin --tags
3)如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除
$ git tag -d tagname
然后,从远程删除,删除命令也是push,但是格式如下:
$ git push origin:refs/tags/tagname
十五、自定义Git
让git显示颜色,会让命令输出看起来更醒目
$ git config --global color.ui true
以上是关于git操作教程的主要内容,如果未能解决你的问题,请参考以下文章