初始化git仓库:
git init
提交到仓库:
1.将文件从工作区提交到暂存区:git add <filename>
(如果后悔了:git reset HEAD <filename>
2.从暂存区提交到当前分支:git commit -m “提交说明”
查看仓库状态:
git status
查看文件变化:
git diff <filename>
想撤销工作区的修改:
git checkout <filename>
版本回退到上一个版本:
git reset —hard HEAD^
回到任意版本:
git reset —hard <commit_id>
查看提交记录:
git log 或 git reflog
工作区:
没有任何修改的情况下工作区是干净的
暂存区:
可以分多次从工作区提交到暂存区
分支版本库:
一次性将暂存区所有的提交到分支版本库
(注意:未添加到暂存区的内容不会被commit到版本库)
查看工作区和版本库的区别:
git diff HEAD — <filename>
撤销修改(分三种情况):
1.丢弃工作区的修改:git checkout — <filename>
2.丢弃暂存区修改: git reset HEAD <filename>
3.修改版本库:git reset — hard HEAD^ 或 git reset —hard <commit_id>
文件删除:git rm <filename>
删除后提交:git commit -m <filename>
删错了回复到版本库:git reset HEAD <filename>
远程仓库(分布式管理),使用SSH协议传输:
创建SSH key:
(1)在用户主目录下:ssh-kengen -t rsa -C “3423423@qq.com”
(2)生成:id_rsa && id_rsa.pub
(3)打开github 的Account setting,将id_rsa.pub添加到SSH KEY
(注:windows下用户主目录:C:\Users\用户名 )
(注:LINUX下用户主目录:/home/用户名)
关联远程库(先有本地库,再有远程库就关联):
git remote add origin git@github.com:jamesaa123aah/learning.git
第一次本地推送master分支:
git push -u origin master
以后推送:
git push origin master
从远程克隆(先有远程库再有本地库就克隆):
$ git clone git@github.com:jamesLee/mylearning.git
创建与合并分支:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
解决冲突:
当两个分支存在冲突不能自动合并时,查看文件内容,手动解决冲突并合并
查看分支图:
git log --graph --pretty=oneline --abbrev-commit
分支管理策略:
不用用fast_forward合并:
git merge --no-ff -m "merge with no-ff" dev
git pull = git fetch + merge to local