天天看点

Git使用笔记1. 常用命令2. git中三种状态3. 合并分支冲突

下载一个项目和它的整个代码历史

git clone [**.git]

Git使用笔记1. 常用命令2. git中三种状态3. 合并分支冲突

比较当前文件和暂存区文件差异

git diff

Git使用笔记1. 常用命令2. git中三种状态3. 合并分支冲突

将工作文件修改提交到本地暂存区

git add -A

git add

Git使用笔记1. 常用命令2. git中三种状态3. 合并分支冲突

显示有变更的文件

git status

Git使用笔记1. 常用命令2. git中三种状态3. 合并分支冲突

提交暂存区到仓库区

git commit -a -m “[comments]”

Git使用笔记1. 常用命令2. git中三种状态3. 合并分支冲突

查看该文件每次提交记录

git log

Git使用笔记1. 常用命令2. git中三种状态3. 合并分支冲突

本地代码更新(取回远程仓库的变化,并与本地分支合并)

git pull origin [branchName]

Git使用笔记1. 常用命令2. git中三种状态3. 合并分支冲突

本地代码提交(上传本地指定分支到远程仓库)

git push origin [branchName]

Git使用笔记1. 常用命令2. git中三种状态3. 合并分支冲突

新建分支

git checkout -b [newBranchName]

git checkout -b [newBranchName] master 在master分支上创建分支并切换到newBranchName分支上

Git使用笔记1. 常用命令2. git中三种状态3. 合并分支冲突

切换指定分支

git checkout [branchName]

Git使用笔记1. 常用命令2. git中三种状态3. 合并分支冲突

查看所有分支

git branch -a

git branch 没有参数,则显示本地库中所有本地分支的名称,当前分支前面会有分号

Git使用笔记1. 常用命令2. git中三种状态3. 合并分支冲突

合并分支

git merge origin [branchName]

git merge –no-ff [branchName]

–no-ff指的是强行关闭fast-forward方式。

fast-forward方式就是当条件允许的时候,git直接把HEAD指针指向合并分支的头,完成合并。属于“快进方式”,不过这种情况如果删除分支,则会丢失分支信息。因为在这个过程中没有创建commit

git merge –squash 是用来把一些不必要commit进行压缩,比如说,你的feature在开发的时候写的commit很乱,那么我们合并的时候不希望把这些历史commit带过来,于是使用–squash进行合并,此时文件已经同合并后一样了,但不移动HEAD,不提交。需要进行一次额外的commit来“总结”一下,然后完成最终的合并。

–squash:使用squash方式合并,把多次分支commit历史压缩为一次。

git中三种状态分别为:modified, new file, untracked

下面详细演示下三种状态

初始状态

Git使用笔记1. 常用命令2. git中三种状态3. 合并分支冲突

编辑文件file1.txt

Git使用笔记1. 常用命令2. git中三种状态3. 合并分支冲突

添加文件file3.txt

Git使用笔记1. 常用命令2. git中三种状态3. 合并分支冲突

使用git add 将文件添加到待提交清单

Git使用笔记1. 常用命令2. git中三种状态3. 合并分支冲突

比如master分支在进行合并子分支branchName时,如果采用git merge –no-ff [branchName]的方式,会显示出冲突的地方,比如:

Git使用笔记1. 常用命令2. git中三种状态3. 合并分支冲突

类似上面这种情况,说明发生了冲突,遇到这种情况不用担心。这时候需要手动删除。

首选打开编辑冲突的文件,类似以下这种情形:

Git使用笔记1. 常用命令2. git中三种状态3. 合并分支冲突

介于<<<<<<<(包括======以及>>>>>>都是七个) HEAD和=======的内容是master分支原有的内容:“master file1.txt”。

介于=======和>>>>>>> branchName的内容是branchName原有的内容: “file1 has changed”。

这样将子分支branchName的内容整合到master的过程中,上述标记的2块内容会发送冲突,解决办法就是我们手动编辑去掉冲突,即先编辑冲突,然后使用gitt commit提交。

Git使用笔记1. 常用命令2. git中三种状态3. 合并分支冲突
对于git来说,编辑冲突和平时的修改代码没什么差异。修改完成后,都是要把修改添加到缓存,然后支持commit.

持续更新中…..