Git的简单使用
GIT的一些总结
git http
保存用户名密码
-
凭据存储(Credential Storage):
使用凭据存储可以让你在第一次输入用户名和密码后,Git 会保存这些信息,以便在未来的操作中自动使用。你可以通过以下命令启用凭据存储:git config --global credential.helper store
这样,当你下次使用 HTTP 拉取或推送代码时,Git 会要求你输入用户名和密码一次,然后将它们存储在
~/.git-credentials
文件中。之后的操作将自动使用这些凭据。 -
缓存(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服务器
- 生成
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)替换后成功。