一.创建版本库
1.创建代码存放位置目录
$ mkdir learngit$ cd learngit$ pwd
/Users/michael/learngit
2.将该目录变成Git可以管理的仓库
$ git init
3.用命令git add告诉Git,把文件添加到仓库
$ git add readme.txt
4.用命令git commit告诉Git,把文件提交到仓库
$ git commit -m "wrote a readme file"
注:为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:
$ git add file1.txt$ git add file2.txt file3.txt$ git commit -m "add 3 files."
5.查看提交历史
$ git log
二.版本回退
1.回退到上一个版本
$ git reset --hard HEAD^
2.回退到某一次commit
$ git reset --hard 1094a
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id,HEAD是指针,可以改变它指向任何一个分支的任何一个版本
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本
3.查看工作区和版本库里面最新版本的区别
$ git diff HEAD -- readme.txt
4.丢弃工作区的修改
$ git checkout -- readme.txt
5.丢弃暂存区的修改(即已经git add)
$ git reset HEAD readme.txt
三.远程仓库
1.关联一个远程库
git remote add origin git@server-name:path/repo-name.git
2.第一次推送master分支的所有内容
git push -u origin master
此后,每次本地提交后
git push origin master
删除原本管理的远程仓库
git remote rm origin
四.分支管理
1.创建与合并
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>或者git switch <name>
创建+切换分支:git checkout -b <name>或者git switch -c <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
删除master分支:git branch -D master
2.bug分支
把当前工作现场“储藏”起来,等以后恢复现场后继续工作
$ git stash
恢复工作现场
$ git stash pop
你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash
$ git stash apply stash@{0}
复制一个特定的提交到当前分支
$ git cherry-pick 4c805e2
五.多人协作
1.、查看远程库的信息查看远程库信息,使用
git remote -v
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支
git push origin branch-name,
如果推送失败,先用
git pull抓取远程的新提交;
在本地创建和远程分支对应的分支
git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联
git branch --set-upstream branch-name origin/branch-name;
从远程抓取分支
git pull,如果有冲突,要先处理冲突
强制关联两个仓库拉取分支
git pull origin master --allow-unrelated-histories
更新远程仓库分支列表
git fetch origin