1、常用命令
git checkout -b liukai origin/liukai 新建本地分支liukai与远端分支liukai关联
git checkout -b liukai 新建本地分支liukai 并切换到liukai
git branch -d liukai 删除分支 -D强制删除(当创建的分支没有merge过而要删除的时候用——D)
git checkout -liukai 切换到liukai分支
git branch -v 查看版本号码信息以及提交信息
git branch -vv 查看本地和远程的追踪关系
git branch --merged 查看哪些分支已被并入当前分支(译注:也就是说哪些分支是当前分支的直接上游。):
git branch -r 查看远程分支
git branch -a 查看所有分支
合并分支到主分支
git checkout lk 切换到lk
git merge master 合并到主分支
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
1、初始化一个Git仓库,使用git init命令
在一个文件夹下打开git执行 git init命令,就可以从远端拉代码,开启版本的操作
2、git diff 显示本次修改的差别,和git status操作时间相同
3、git log 查看每次提交的信息(commit) , q退出
git log--pretty=oneline 简练查看历史提交信息
4、git checkout -b liukai origin/liukai
5、利用 git push --set-upstream origin branch_name来在远程创建一个与本地branch_name分支同名的分支并跟踪;
利用 在本地创建和远程分支对应的分支,
先git pull
再使用git checkout -b branch-name origin/branch-name 来在本地创建一个与 branch_name 同名分支跟踪远程分支。
6、版本回溯:
git log 查看当前分支的提交历史
Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,
上一个版本就是HEAD^,
上上一个版本就是HEAD^^,
当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
git reset --hard HEAD
Git提供了一个命令git reflog用来记录你的每一次命令
然后git reset --hard版本号(根据——m""的记录来查找所需的版本号)
7、查看修改信息
git diff HEAD -- readme.txt
查看readme.txt修改结束commit以后得改变
8、提交撤回
git checkout -- file:没有add的修改 撤回对file的修改,命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令
git reset HEAD readme.txt :已经add进入缓存区,撤销add的效果, 然后丢掉工作区的修改 git checkout --file:没有add的修改
若已经commit 进入版本库 进行版本回退即可。
9、删除文件
rm 或者git rm 以后如果确实要删除,add commit 删除即可
若是误删执行以下命令恢复即可
git checkout -- test.txt
10、远程库
本地文件夹为learngit
github创建一个同名文件,然后在本地执行下面命令关联远程仓库
git remote add origin git@github.com:michaelliao/learngit.git
git push -u origin master第一次推送master分支的所有内容;
每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
此时会默认本地和远程master的对应track关系
11、从远程库克隆
git clone ssh链接 复制代码到本地
12、解决冲突
开始的时候master和liukai分支相同,然后
master 修改了readme.txt 已经commit到版本库
liukai 分支也修改了readme.txt 已经commit到版本库
两个分支修改的内容不一致
在master上merge liukai的时候会在read.txt 上面有冲突,手动调整至自己想要的状态,然后add commit即可
git log --graph命令可以看到分支合并图。
13、git merge --no-ff -m""
这样合并以后可以看到merge造成变的日志(在git log中)
14 、git stash 把当前分支未开发完成的代码暂时封存,
其他分支操作完成,merge到master分支以后,
切换到git stash 分支上面,git stash pop 删除stash并恢复以前未开发完成的代码的进度。
15、未经合并的分支在删除的时候用 git branch -D强制删除(当创建的分支没有merge过而要删除的时候用——D)
16、git remote 查看远程库
git remote -v 查看远程库更加详细的信
息
多人协作的模式
因此,多人协作的工作模式通常是这样:
首先,可以试图用git push origin <branch-name>推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。
17、ignore不起作用的问题是因为远程库内已经有了这些文件,已经被追踪,把他们删除就行,ignore就起作用了,以后这些文件更新就不会提交到远程库
18、对应远程库有更新时,本地推送会失败,先拉远程库到本地,解决冲突再push
1)远程库更新的文件与本地不是一个,直接git pull 然后将本地推送即可
2)远程库更新的文件与本地更新的文件有的在同一个文件上,pull的时候手动解决冲突,然后commit提交至本地代码库,完成pull ,然后再push
19、基于最新分支进行开发
先从master拉取最新代码,
然后在liukai分支merge即可
可能出现的问题:
1)若liukai分支与master分支同时修改一个文件 就要手动修改然后commit完成