版本的回退及跳转
创建一个仓库 git init
在仓库下创建一个文件并且进行编辑 vim test.txt
把文件添加到缓冲区中 git add 文件名 git add . 把所有的文件添加到缓冲区中
然后把文件进行提交 git commit -m "注释" 比如:git commit -m "first commit"
上面是准备工作:
下面开始练习版本回退及跳转
进行三次文件的更改并进行提交 vim test.txt git add git commit
查看版本: git log 或者 git log --pretty=oneline显示一行
返回上一个版本:git reset --hard HEAD^
返回指定的版本:git reset --hard commit_id
查看历史记录:git reflog
这样就完成了版本的回退及跳转
撤销修改
git checkout -- 文件
把readme.txt文件在工作区的修改全部撤销,这里有两种情况
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态
删除文件
创建一个文件 vim test.txt
rm 文件名
如果创建了一个文件,并且add到了缓冲区,这时候rm了,可以通过git checkout -- 文件名(git checkout -- test.txt)
如果git rm 文件名就会彻底从缓存区进行删除了,那就不能通过git checkout -- 文件名来进行恢复了。
创建远程连接
在本地先实例一个仓库 git init
然后远程连接 git remote add origin [email protected]:Lucidastar/LxlTest.git就可以进行连接了,当然确定你已经配置好了私钥和公钥 然后可以通过git remote -v 查看一下连接的状态
创建分支和合并
创建并切换到这个分支上 git checkout -b 分支名 git checkout -b feture
创建一个分支:git branch 分支名 git branch feture
切换到一个分支:git checkout 分支名 git checkout feture
查看分支:git branch
我们在分支中对文件进行了修改然后add并且commit 然后再切换到主分支上
进行合并:git merge 分支名 git merge feture
git merge命令用于合并指定分支到当前分支
删除分支:git branch -d 分支名 git branch -d feture
(注意:当使用checkout 创建分支并且切换分支时,如果远程有这个分支,会跟踪远程的分支)
如:Branch dev set up to track remote branch dev from origin.
分支dev设置跟踪远程分支dev的来源。
解决冲突
创建一个分支:git checkout -b feture
在分支中修改文件vim 文件名,然后进行add并且commit
在主分支上修改文件vim文件名 ,然后进行add并且commit
在主分支进行合并分支,git merge 分支名 git merge feture
这时候会出现冲突,然后通过vim进行修改冲突,然后再进行add,然后commit
然后合并分支git merge feture,然后删除分支 git merge -d feture
用带参数的git log也可以看到分支的合并情况
git log --graph --pretty=oneline --abbrev-commit
分支管理策略
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
下面进行练习:
查看本地分支列表
git branch -a
检出远程的分支
git branch -b dev origin/dev
删除远程分支
git push origin --delete
git push origin :
删除本地分支
git branch -d branchName
git branch -D branchName //强制删除分支
查看远程连接地址
git remote -v
查看远程的所有分支列表
git branch -a
删除远程连接
git remote rm origin