一、本地操作:
1 初始化一个仓库: git init
2 添加文件到Git仓库,分两步:
2.1 git add <fileName>可以反复多次添加,也可以一次添加多个文件(git add . / git add file1 file2)
2.2 git commit -m “message”提交
3 git status随时掌握工作区的状态
4 git diff <fileName>查看修改的内容
5 在本地版本间穿梭: git reset --hard commit_id(回到上一版本:git reset —hard HEAD^)
ps:在Git中,用HEAD表示当前版本,上一版本就是HEAD^,同理上上版本HEAD^^,如果往上100个版本,可以写成HEAD~100
6 git log可以查看历史提交记录,以便确定要退回版本的commit_id (简化信息:git log --pretty=oneline)
7 git reflog查看命令历史
8 丢弃工作区的修改:git checkout --<fileName>(这里的 -- 很重要,如果没有--,就编程切换分支的命令)
9 丢弃暂存区的修改:第一步,git reset HEAD<fileName>(HEAD表示当前最新版本), 第二部git checkout --<fileName>
10 丢弃版本库的修改:和第5条同理,其实就是切换回先前的分支git reset --hard commit_id
11 删除文件:
11.1 方法一:先删除本地rm <file>,然后再git add/rm <file>,git commit -m “message”
11.2 方法二:直接git rm <file>,git commit -m “message”
ps: 如果是rm <file>,可以直接通过git checkout -- <file>修改回来
二、关联远程库:
1 在GitHub上创建完远程仓库后,在本地的仓库下运行命令,关联远程库:
git remote add origin git@server-name:path/repo-name.git
2 下一步,使用命令:git push -u origin master,将本地库的所有内容推送到远程库上
ps:第一次推送master分支时,加上了-u参数,git不但会把本地的master分支内容推送到远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送命令即可省略,直接用git push origin master
三、创建、合并分支:
1 查看分支:git branch,查看远程分支: git branch -r
2 创建分支:git branch <name>
3 切换分支:git checkout <name>
4 创建+切换分支:git checkout -b<name>
5 合并某分支到当前分支:git merge <name>
ps:合并分支时加入--no-ff参数,表示禁用Fast forward:git merge --no-ff -m “merge with no-ff” <name>
这种操作合并后的历史有分支,能看出曾经做过合并,而Fast forward合并就看不出来
6 删除分支:git branch -d<name>
7 查看合并分支图:git log --praph
四、临时分支:
情景:在develop分支开发时,突然报出紧急bug:
1 在develop分支把工作现场“贮藏”起来:git stash
2 然后确定要在哪个分支上处理bug,加入在master上修复,就从master创建临时分支:git checkout master-> git checkout -b bug001
3 在bug001分支上处理bug,修复完成后切回master进行合并:git merge --no-ff -m “merge with no-ff” bug001
4 现在bug处理完了,回到develop查看刚刚”贮藏"的代码:git stash list
5 把”贮藏"的代码拿到develop上,继续开发:git stash pop(git stash apply + git stash drop)
ps:apply恢复,但stash的内容并不删除,需要再用drop删除;pop恢复的同时也删除了
五、新特性分支:
情景:开发一个新feature,但是突然说这个功能不做了(在新分支上已经执行add,commit操作)
1 丢弃一个没有被合并过的分支,强行删除该分支:git branch -D<name>
六、多人协作:
1 推送本地分支到远端:git push origin <name>,如果推送失败,先git pull抓去远程的新提交
2 拉取远端分支到本地:git checkout -b <name> origin/<name>
ps:查看权限:git remote -v
3 建立本地分支和远程分支的关联:git branch --set-upstream <name> origin/<name>
ps:如果git pull提示no tracking information,则说明没有创建关联
4 删除远端分支,使用下面两条命令:
git branch -r -d origin/<name>
git push origin :<name>
七、rebase:
1 git rebase操作可以把本地未push的分叉提交历史整理成直线
网友评论