当前位置: 移动技术网 > IT编程>开发语言>JavaScript > git指令大全(建议收藏)

git指令大全(建议收藏)

2017年12月20日  | 移动技术网IT编程  | 我要评论

Git版本管理是一个分布式的仓库管理工具,其功能相当的强大,因此我总结了一些学习的命令,忘记的时候可以回来看看。

1.安装和初步配置

  sudo apt install git git-core               //安装   (其实不用apt-get也可以的)    
  git config --global user.name "Your Name"       //你的名字
  git config --gloabal user.email "email@163.com" //你公司的内部邮箱,或者随便写一个
  git config --gloabal color.ui true //这样就会显示不同的颜色
  git config --gloabal alias.st status //为status配置别名 这样就是可使用git st 代替 git status
  git config --gloabal alias.co checkout  //checkout别名co
  git config --gloabal alias.ci commit //commit 别名ci
  git config --gloabal alias.br branch //branch别名br

2.下载服务器源码

  mkdir project-code            //创建一个目录作为你的工作区
  cd project-code               //进入工作目录
  ssh-keygen -t rsa -C "email@163.com"  //创建ssh key,生成的密钥交给版本仓库管理员,用于认证你的工作区,下载,提交代码
  //生成过程如下图所示

  git clone git@serverIP:/source/source.git  //下载源码到本地,其中 git@serverIP:/source/source.git ,这是一个ssh地址,git为用户名@后面为IP地址,和源码位置

这是在一开始存在版本控制仓库的情况下,我们需要加入到源码开发中去的情况,也是大部分存在的情况,如果需要自己建立一个版本库的话如下
  mkdir IamController //如果你是版本控制,只是管理自己的代码,而不共享给别人
  cd IamController
  git init  //创建版本库,就会生成 .git 目录

3.代码提交

 git add ***.txt  //把***.txt由工作区存放到暂存区
  git commit -m "**************" //将暂存区的文件提交到仓库 -m 后面是提交的说明
  git status //查看当前的工作区和暂存区的状态,可以时刻查看仓库的状态
  git diff xxx.txt //对比查看工作区和仓库内xxx.txt的不同,就是查看工作区对本文件的修改,并查看修改内容 
  git diff HEAD -- xxx.txt //查看工作区与版本库里最新的版本的区别,其实和上面的类似

4.版本退回

  git log //查看仓库所有的版本号,版本说明
  git log --pretty=oneline //一行显示版本号和版本末说明
  git log --graph --pretty=oneline --abbrev-commit //显示分支和commit历史提交的序列码
  git log -1  //是数字1 ,显示最近一次的commit提交
  git reset --hard HEAD^ //退回当上一个版本, 两个 ^表示退回两个版本
  git reset --hard num //退回到num 版本号的那个版本
  git reflog //记录每次操作的过程,用于查看操作过的所有版本的ID,用于git reset

5.撤回修改

  git checkout -- xxx.txt //丢弃工作区的修改,就是修改了还没有git add,也就是退回到和git add的一样的状态,-- 不能去掉,去掉就是创建一个新的分支
  git reset HEAD xxx.txt //在commit之前撤回修改,这个命令既可以退回版本,也可把暂存区的修改退回到工作区,然后再使用上面的命令,放弃修改

6.删除文件

  rm xxx.txt //直接删除工作区的文件
  git checkout -- xxx.txt //如果误删了,撤回工作区修改
  git rm xxx.txt //版本库删除文件

7.分支创建

 git checkout -b xxx //创建xxx分支并切换到xxx分支
  git branch xxx //创建xxx分支
  git checkout xxx //切换到xxx分支
  git branch //查看分支,和当前所在分支
  git checkout master //切换到主分支  
  git merge xxx //合并xxx分支到主分支
  git checkout -d xxx // 删除分支xxx
  git checkout -D xxx // 强行删除分支xxx,只有分支融合后,-d的删除才能使用,不然会失败,但是-D是强行删除,在主分支以外的其他分支,删除另一个分支就必须使用-D

8.解决冲突

  当遇到两个分支融合或者融合到主分支遇到冲突时,必须手动融合
  git status //显示冲突文件以及冲突的地方
  然后修改冲突的地方再次提交,提交完后删除分支
  git branch -d xxx  //删除xxx 分支
  git merge --no-ff -m "merge with --no-ff"  XXX  //以 禁用fast forward的方式合并dev 直接就上传了(commit),合并后还可以看到历史分支,而fast forward是看不到历史分支的

9.分支储藏

为每一个bug都创建临时分支,储藏分支,然后恢复分支,就是把工作现场储藏起来,去解决另一个bug,解决完了再回到现场

  git stash //储藏现场,指的是工作区的情况,暂停这个分支的add commit的情况,执行后,现场的工作区就为空了,可以status查看
  git stash list //储藏现场的列表,然后用于恢复,每次储藏都会在这个list内注册
  git stash apply //恢复现场,但这个现场在stash list内依然存在,并没有删除掉
  git stash apply stash@{n} //恢复现场n,就是在这list内可能不止一个现场,n代表现场的序号 
  git stash drop //删除stash list内的这个现场注册
  git stash pop //恢复现场同时删除stash list内的这个注册

10.多人远程协作

在创建好远程的git仓库后,不管是github还是git服务器的仓库,多个开发成员需要协作开发,因此需要从仓库git clone下来

  git remote //查看远程库信息,一般是origin
  git remote -v //显示更详细的信息,origin的抓取和推送地址
  git push origin xxx//推送分支xxx 
  git checkout -b xxx origin/xxx  //创建远程分支
  git pull //更新最新的
  git branch --set-upstream-to=origin/dev dev //设置本地的dev与远程的origin/dev分支的连接,--set-upstream被弃用了,因此只能--set-upstream-to,当连接好了之后才能成功pull到最新的库

11.标签快照

  git tag tagname //在主分支打一个标签版本号tagname 或者写v1.0,再最新的commit上打标签
  git tag  //查看所有标签,所有tag不是按照时间顺序列出来的,而是按字母数字开头大小拍了出来
  git tag tagname  num  //在序列码num上打标签,这个num表示commit的提交序列码。可通过  git log --graph --pretty=oneline --abbrev-commit 获得
  git show tagname  //显示标签信息
  git tag -a tagname -m " version info" num // -a指定在commit 提交码num序列码上打标签为tagname 并-m带有标签说明
  git tag -s tagname -m "带私钥的标签说明" num //签名采用PGP签名,没有gpg密钥对就会报错,需要安装 apt install gnupg
  git tag -d tagname  //删除标签
  git push origin tagname //推送标签到远程
  git push origin --tag //一次性推送所有的tag
 //如果要删除远程的tag,先删除本地的tag,然后远程删除
  git push origin :refs/tags/tagname  //删除远程版本库内的标签

12.搭建git服务器

首先得安装git,然后再linux 下为git创一个用户,淡然可以不用创建也行

sudo adduser git //创建一个linux用户git
  ssh-keygen -t rsa -C "youremail@xxx.com"//创建密钥用于git server认证,这样才能提交代码到远程仓库,在用户目录下会生成.ssh目录,里面的id_rsa私钥和id_rsa.pub公钥就是密钥对,公钥需要给远程服务器或者github
  //手机需要远程上传的的用户的公钥id_rsa.pub,把文件的内容复制,一行一个用户导入服务器/home/git/.ssh/authorized_keys文件里
  //在服务器某个路径下创建仓库并初始化
  sudo mkdir codesever //创建代码仓库,用于代码上传下载
  sudo git init --bare sample.git //初始化建立远程版本库
  git clone git@serverip:/仓库绝对路径   //远程下载仓库  

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网