Git简易入门
运行前配置
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
$ git config --global credential.helper store 加入这句话会自动储存账号密码
配置您的昵称和邮箱用于提交后展示,它会保存在你系统中的C:\Documents and Settings\$USER\.girconfig
或者~/.gitconfig
中。
除了使用全局配置的方式储存账号密码,还可以在添加仓库时用如下格式:
https://{username}:{password}@github.com
创建仓库
$ git init 初始化仓库
$ vim .gitignore 创建忽略文件,里面写上哪些文件不受git管理
$ git add * 将所有文件加入到暂存
$ git commit -m "这里写注解,这句话代表提交到本地git"
$ git remote add origin https://git.oschina.net/***/test.git 添加远程库,origin是别名
$ git pull origin master 先从远程库更新数据,master是默认主分支
$ git push origin master 推送到服务器
我的.gitignore文件内容:
*.class
/bin/
我不想上传.class文件和/bin/目录,注意目录以/结尾
克隆仓库
$ git clone https://github.com/hibernate/hibernate-orm.git
如何提交
$ git status 查看有哪些改动
$ git add * 将修改好的加入暂存
$ git commit -m "这里写注解,这句话代表提交到本地git"
$ git push origin master 推送到服务器
需要注意的是,如果有其他人提交过代码,你需要先更新。
如果你发现某个文件写错了不想提交,想覆盖更新,那么:
$ git status 查看哪些文件修改了,会以modified标识
$ git checkout -- readme.txt 后面这个是文件名,这就覆盖更新了。
如何更新
$ git pull origin master 从远程库更新数据
如何处理冲突
冲突的数据会以C打头,直接去修改即可。
修改完成后使用git add 标注文件,表示处理冲突完成。
如何删除手残已提交的信息
有的时候我们可能会手残,把拥有账号密码的文件或者一些无用的数据提交到了GIT中。这个时候我们需要在历史记录之中将它删掉,因为即使你现在删除了它再提交,对远程服务器来说也只是不记录它了而已。因为历史记录还在。
git filter-branch --index-filter \
'git update-index --remove filename' <introduction-revision-sha1>..HEAD
git push --force --verbose --dry-run
git push --force
如果是全部分支 请使用–all,例如:
git filter-branch --tree-filter 'rm -rf .hibernateSynchronizer3' HEAD --all
git filter-branch -f --tree-filter 'find . -name ".DS_Store"|xargs rm -f' HEAD --all
git push --force --verbose --dry-run --all
git push --force --all
如果你只是提交到了本地库,还没有提交到服务器上的话,那就简单了。
git commit -a --amend
其它资料
如果你想学习的很详细的话,建议看这本书点权威Git书籍 ProGit(中文版),新手老鸟均适合。
git官网:http://git-scm.com
git手册:http://git-scm.com/docs
网友整理的Git@osc教程,请查看这里。
一份很好的 Git 入门教程,点击这里查看。
git快速入门(gif动画版),点击这里查看。
你还可以在安装了git之后,使用以下命令获取各个工具的详细帮助:
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
常见命令
从现有仓库克隆
$ git clone git://github.com/schacon/grit.git
初始化本地仓库
$ git init
检查文件状态
$ git status
跟踪新文件
$ git add
忽略某些文件
.gitignore
提交更新
$ git commit -m “Story 182: Fix benchmarks for speed”
移除文件
$ rm grit.gemspec
查看提交历史
$ git log
查看当前的远程库
$ git remote -v