git init 把目录变为仓库
git add readme.txt 把文件添加到git仓库
git commit -m "here is commit description" 把文件提交到仓库 -m后面描述
git status 查看仓库状况(哪里有改动等)
git diff 查看改动
git add readme.txt 提交修改(进入缓存区,然后提交commit)()
版本退回
git log -- pretty=oneline(显示一行)显示commit日志
git reset -- hard HEAD^ 回到上个版本,^^上上个版本 ,第100个版本HEAD~100
git reset -- hard3628164 回到某个版本,3628...是版本号前几位,不必写齐
git reflog 查看命令历史,以便确定要回到未来的哪个版本
修改相关
git diff HEAD -- readme.txt 查看工作区和版本库里面最新版本的区别
git checkout -- readme.txt 丢弃工作区的文件的修改
git reset HEAD readme.txt (假设add到了stage),把stage的修改撤销掉(unstage),重新放回工作区(将当前版本覆盖stage)(如果需要然后在git check out---撤销本地修改)
删除还原
checkout用于本地从stage恢复,reset用于stage从master恢复
1.在工作区(checkout readme.txt)
方法:直接checkout -- readme.txt撤销操作
2.在暂存区(git rm readme4.txt)删除本地和stage中的
方法:先reset HEAD退回操作区,再checkout撤销操作
3.在版本区
方法:只能版本回退
远程仓库
ssh-keygen -t rsa -C"youremail@example.com" 创建SSH Key
github -个人设置-ssh-new-将公钥id_rsa.pub添加进去
在github上新建仓库
git remote add origin git@github.com:yourgithubname/reponame.git(将新建的仓库与本地仓库关联)
git remote set-url origin newURL 切换remote
git push -u origin master(首次加U)
git push origin master(推送到远程)
git pull origin master(从远程更新)
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
git branch -a查看所有分支(包括远程)
从远程库克隆
git clone git@github.com:yourgihubname/reponame.git
创建与合并分支
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch xxx
切换分支:git checkout xxx
创建+切换分支:git checkout -b xxx(效果等于上面两句)
合并某分支到当前分支:git merge branchname
删除分支:git branch -d branchname
拉取分支到本地:git checkout -b local-branchname origin/remote_branchname
推送:git push origin local_branch:remote_branchxietu
拉取:git pull
拉取分支到本地:git fetch 然后git checkout -b localBranch origin/A
拉取分支到本地2(跟踪分支,有直接关系,可直接push?):git checkout --track origin/A
拉取分支到本地3:(已有dev分支 git checkout -b dev,使之关联远程分支)git branch --set-upstream dev origin/A
冲突解决
要解决冲突再提交
$ git log --graph --pretty=oneline --abbrev-commit 看分支合并图
git branch -d feature1 看分支合并图
遇到的问题
1、不能commit,no changes added to commit
解决方法
1.到根目录下:git add .;("."是必须要的)
2.git commit -m "some word"
3.git push -u origin master