Git的简单使用

GIT的一些总结

git http保存用户名密码

  1. 凭据存储(Credential Storage)
    使用凭据存储可以让你在第一次输入用户名和密码后,Git 会保存这些信息,以便在未来的操作中自动使用。你可以通过以下命令启用凭据存储:

    git config --global credential.helper store
    

    这样,当你下次使用 HTTP 拉取或推送代码时,Git 会要求你输入用户名和密码一次,然后将它们存储在 ~/.git-credentials 文件中。之后的操作将自动使用这些凭据。

  2. 缓存(Caching)
    如果你不想永久存储凭据,可以使用缓存方法。这种方法会在内存中临时存储凭据一段时间。你可以通过以下命令启用缓存:

    git config --global credential.helper cache
    

    你还可以指定缓存的时间(以秒为单位),例如:

    git config --global credential.helper 'cache --timeout=3600'
    

    这将使凭据在内存中缓存一个小时。

git初始

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

从远程仓库clone一个本地库

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

分支变动管理

  • 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(远程)上去。

远程库的管理

  • 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/00137583770360579bc4b458f044ce7afed3df579123eca000

  • 生成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.

解决方法:

  1.首先``git remote -v``查看一下我们的远程库地址是否出错。
  2.``git remote set-url origin 你的远程库地址``origin是我在远程库中起的名字
  3.![](http://images2015.cnblogs.com/blog/787409/201609/787409-20160922170609934-1798412909.tiff)替换后成功。
posted @ 2016-09-22 15:59  懒懒初阳  阅读(306)  评论(0编辑  收藏  举报