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完成