Git的简单使用

GIT的一些总结

git初始

  • 添加一个远程的repository(这个托管网络的rep建立就不在这里一一赘述了)
    git remote add git@github.com:用户名/远程的rep名.git

从远程仓库clone一个本地库

git clone git@github.com:用户名/远程rep名.git就会从远程库clone一个工程到本地目录下。git

分支变更管理

  • git diff HEAD -- 文件名能够查看工做区里面的文件与版本库中有什么区别
  • git log查看一下咱们全部的更改信息。
  • git reset --hard 在log中找到的你想回退的变更回退到固定版本
  • git reflog其中记录了你git全部的操做,这样子你就能够找到全部版本,你就能够经过上一条命令跳到全部你trak过的变更。
  • git checkout -- 文件名这个是让你工做区里面的文件与库文件保持一致,变相舍弃了本地你全部的更改。
  • git reset HEAD 文件名撤销当前暂存区的修改,工做区修改不变。

提交变更文件到远程库

git push -u origin master将master(本地)提交到origin(远程)上去。github

远程库的管理

  • git remote -v查看远程库的信息
  • 在多人协做开发的时候git push以前必定要git pull拿到别人的变更,若有冲突解决。再提交。
  • git checkout -b 分支名 origin(远程主分支名,对应的是你本地master分支)/分支名本地建立和远端同样的分支
  • 创建本地远程之间的分支关联git branch --set-upstream branch-name origin/branch-name;

分支的管理

  • 分支的管理git branch查看当前的分支状态; git checkout -b 分支名建立一个分支;git checkout 分支名转换分支;
  • git pull本地与远程文件统一(远程 --> 本地)若是你本地落后远程,必须用pull。若是你本地超前远程,必须用push。
  • 分支提交冲突git status查看冲突的状态,手动解决冲突。再次提交变更。
  • 带参数的git-log
    git log --graph --pretty=oneline --abbrev-commit
  • 快速合并分支
    git merge 分支名将该分支合并到当前的分支上去。
  • 禁用快速合并
    git merge --no-ff -m"你的自定义注释" 分支名这个好处就是能够自定义一个分支合并的注释出来,方便后期的维护更新。
  • Bug分支的使用
    git stash保持当前工做场景。主要针对那些未提交的更改。
    git stash list能够查看当时的工做现场
    git stash apply恢复工做现场,stash内容并不删除,若是想删除须要git stash drop来删除
    git stash pop恢复工做现场后,把stash内容也删除了。
    git checkout -- 文件名撤销修改。

版本管理

  • 由于commit id是一串字符串不是很友好,咱们就引入了tag版本做为关联,git tag v1.0 commitID给当前命名为commitID的分支添加一个版本号
  • git tag -a <tagname> -m "注释信息"指定标签信息。

添加忽略文件的教程

  • 建立一个.gitignore文件,将你想忽略的文件格式放入这个文件中。这里有个实例文件参考:
建议从github官网搜索.gitignore根据语言的不一样去下载不一样的忽略文件。
  • 首先要利用git rm --cached filename先将已经track在git中的文件从索引端移除掉。
  • 而后再将.gitignore文件提交git。
  • 打完收工。

配置别名

  • 经常由于git中的一些命令行太长很差记而烦恼,git config --global alias.别名 你要替换的命令
  • 一个比较好玩的配置:git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"服务器

  • --global针对当前用户,不加只对当前仓库起做用。
  • 这些别动都在.git/config文件中能够找到。若是要删除别名,直接删除文件中对应行就能够了。网络

搭建Git服务器

能够参考大神的教程:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000app

  • 生成SSH加解密文件
设置Git的user name和email:
$ git config --global user.name "名字"
$ git config --global user.email "邮箱名字"
1.查看是否已经有了ssh密钥:cd ~/.ssh
若是没有密钥则不会有此文件夹,有则备份删除
2.生存密钥:
$ ssh-keygen -t rsa -C “邮箱名字”
按3个回车,密码为空。
3.配置git SSH访问
$ ssh git@192.168.x.x 登录远程服务器
$ ssh mkdir .ssh 建立.ssh文件夹
$ touch authorized_keys 建立公钥匙列表文件
而后将本地生成的id_rsa.pub文件里面的内容拷入authorized_keys文件中,一行一个Key
$ git clone git@192.168.x.x:/home/git 具体地址本身按要求填写
打完收工..
  • 服务端配置git仓库
git init --bare xxx.git   //建立空git仓库
chmod -R 777 xxx.git //更改文件夹权限

错误信息汇总(持续更新)

  • Could not read from remote repository.Please make sure you have the correct access rights and the repository exists.
    ssh

    解决方法:

    1.首先git remote -v查看一下咱们的远程库地址是否出错。
    2.git remote set-url origin 你的远程库地址origin是我在远程库中起的名字
    3.替换后成功。url

相关文章
相关标签/搜索