一、本地git操作
1. 初始化
$ git init # 在需要git的目录中
2. 添加add和提交commit
$ git add <filename> # 提交stage
$ git commit -m '注释' # 提交commit
3. 查看状态
$ git status # 查看工作区状态
$ git diff HEAD -- <filename> #查看工作区中文件与最新的commmit之间的不同
4.版本回退
$ git log #显示从最近到最远的提交日志
$ git git log --pretty=oneline #简略版提交日志
$ git reset --hard HEAD^ #回退到上个版本
$ git reset --hard HEAD^^ #回退到上上个版本
$ git reset --hard HEAD~100 #回退到上100个版本
$ git reset --hard <commit_id > #转到该commit
$ git reflog # 查看历史命令,可以知道未来的版本号
5.撤销修改
$ git checkout -- readme.txt #让文件回到最近一次git commit或git add时的状态。
$ git reset HEAD <filename> # 把暂存区的修改撤销掉(unstage)
6.分支管理
$ git branch #查看现有的branch
$ git branch <branchname> #创建branch
$ git checkout <branchname> #切换到该branch
$ git checkout -b dev # 创建并切换到该branch
$ git merge <branchname> # 合并branch
$ git branch -d <branchname> #删除该branch –d改成-D为强行删除
$ git log --graph --pretty=oneline --abbrev-commit #查看分布合并图
7.保存工作区
$ git stash #保存当前工作区状态
$ git stash list #查看已保存的工作区状态
$ git stash apply stash@{0} #恢复到该工作区状态
$ git stash pop # 恢复的同时把stash的内容也删了
8.修复bug
$ git checkout master
$ git checkout -b issue-101
$ git add readme.txt
$ git commit -m "fix bug 101"
$ git checkout master
$ git merge --no-ff -m "merged bug fix 101" issue-101
$ git branch -d issue-101
二、远程仓库操作
1. 准备
- 下载安装git客户端 http://code.google.com/p/git-osx-installer/downloads/list?can=3
- 注册github账号https://github.com/
- 注册github账号https://github.com/
2. 创建ssh
显示隐藏文件
$ defaults write com.apple.finder AppleShowAllFiles -bool true
点击桌面顶部菜单 前往>个人 看看自己电脑上有没有个 .ssh 的隐藏文件,有的话个人建议删除,重新建一个
- 新建个 .ssh文件(记住当前目录)
$ mkdir .ssh
- 进入到刚才新建的.ssh文件目录下
cd .ssh
创建ssh
$ ssh-Keygen -t rsa -C "your_email@example.com" #后面提示输入密码可以忽视
查看是否存在 id_rsa(私钥) id_rsa.pub(公钥) 这两个东西
$ ls -la
- 打开 id_rsa.pub,复制其中的ssh, 登陆github,选择Account Settings–>SSH Keys 添加ssh
$vim id_rsa.pub
3.上传项目
touch README.md //新建一个记录提交操作的文档
git init //初始化本地仓库
git add README.md //添加
git add * //加入所有项目
git status //检查状态 如果都是绿的 证明成功
git commit -m "first commit"//提交到要地仓库,并写一些注释
git remote add origin git@github.com:youname/Test.git //连接远程仓库并建了一个名叫:origin的别名
git push -u origin master //将本地仓库的东西提交到地址是origin的地址,master分支下
4.将远程库clone到本地
$ git clone <address of remote lib>
$ git branch --set-upstream dev origin/dev #在本地创建dev分支,关联到远程库的dev,并抓取该内容
5.多人协作
首先,可以试图用
git push origin branch-name
推送自己的修改;如果推送失败,则因为远程分支比你的本地更新,需要先用
git pull
试图合并;如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用
git push origin branch-name
推送就能成功!如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令
git branch --set-upstream branch-name origin/branch-name
- 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;。
6. 其他命令
$ git remote -v; #查看远程库信息
$ git push -u origin :branch_name #删除远程分支branch_name,注意origin前有空格
git push -f origin #强制上传到远程