git学习常用命令

git基本命令

第一次提交需要设置用户名和邮箱
git config --global user.name "yang"
git config --global user.email "[email protected]"
如果git从GitHub上下载,上传,第一次上传需要输入用户名和密码,用户名和密码就是注册GitHub时的邮箱和密码

git init  //初始化git
git diff  //可以看到差异性文件
git add ./filename  //提交到版本库放入暂存
git commit -m "备注" //提交到版本库
git remote add origin http://github.com/youname/repo.git //关联远端仓库
git remote rm origin//删除远端仓库关联
git remote -v//查看已关联远端库
git push -u origin master //提交到远端仓库 第一次以后用:git push origin master


也可以直接克隆远程仓库
git clone 远程仓库地址

创建分支
1.git branch[option][name]
如果不加任何参数,他可以用来查看所有的分支,而在分支前面有*标记的则为当前分支,如果加上name为新创建分支,如git branch child,这时新创建了一个名为child的分支,
-v 用于查看各个分支的最后一次commit的信息
-d 删除分支
-r 查看远程主机分支
-a 查看所有分支
1.在远端创建分支
git branch 分支名字 //先创建本地分支 git push origin 分支名字 // 本地分支提交到远端
2.删除远端分支 ::git push origin -d 分支名字
3.删除本地分支 : git branch -d 分支名字
git push origin 分支名称 //把创建的本地分支提交到远端
git checkout 分支名称 //切换分支
git checkout -b 分支名称 //创建并切换到该分支
日志查看两种查看方式 第二种看的更清爽
1.git log
2.git log –pretty=oneline

时光穿梭机版本回退
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset –hard commit_id。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
撤销修改

git checkout -- bb.txt

命令git checkout – bb.txt意思就是,把bb.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。

删除文件
现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit:

$ git rm test.txt
rm 'test.txt'

$ git commit -m "remove test.txt"
[master d46f35e] remove test.txt
 1 file changed, 1 deletion(-)
 delete mode 100644 test.txt

git push origin 远程文件更新

冲突问题
假如我们新建一个分支,在上面修改了一个文件之后提交。这个时候同事在主分支上也修改了这个文件,提交了。这个合并分支就会出现冲突。
出现冲突必须手动解决冲突,
解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
用git log –graph命令可以看到分支合并图。
分支管理策略
1.一般合并分支的时候都使用git merge + 被合并分支名称。这时git会用fast forward模式这种模式会丢掉分支信息。
2.如果要强制禁用掉fast forward模式,git就会在merge时生成一个新的commit,保留下分支的信息。
首先创建一个叫fenzhi分支

git checkout -b dev
Switched to a new branch 'dev'

修改里面一个叫zx.txt文件提交

git add zx.txt
git commit -m "修改zx"

然后切换会master分支

git checkout master

准备把dev上的信息合并到master分支上,这里注意–no–ff 参数 加上这个参数合并时保留分支信息

git merge --no--ff -m "用no方式合并分支,保留分支信息" dev

这里写图片描述
注意
在实际开发中,我们应该按照几个基本原则管理分支,
保证master分支时稳定的,然后创建一个工作分支,大家都在工作分支上干活,工作分支是不稳定的,随时接受新的合并。你和你的小伙伴都有自己的分支,干完活之后合并到工作分支上去。什么时候合并到主分支呢,比如发布版本的时候,我们把工作分支合并到主分支上

扫描二维码关注公众号,回复: 2810997 查看本文章

总结:git分支功能十分强大,在团队开发中应该充分应用,在合并分支的时候加上–no–ff参数合并时可以保留合并后的历史分支,而用fast forward合并就看不出来曾经做过合并
bug分支
软件开发当中bug像家常便饭一样会经常出现,有了bug需要修复,但是你这时正在开发程序,预计一天才能开发完,但是这个bug马上就需要你修改,怎么办?
这个时候你可以用git当中的一个命令,先把工作现场保存起来,修复完bug之后再来继续干活

   git stash 

这个命令可以把当前工作区保存在一个分支当中,等你修复完bug之后,切换回来干活分支,回复工作现场,这时可以用git stash apply 或者 git stash pop 这两个命令的区别是 git stash apply 这个命令恢复后stash中的内容并没有删除,而git stash pop命令恢复后stash中的内容删除。可以用git stash lish 查看工作现场保存到哪里去了。
如果有特殊需求需要开发时,也需要先新建分支,在分支上开发,然后合并分支,删除分支。

小结

修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。
多人协作
当两个人修改了同一个文件的时候,这个时候提交报错。需要先git pull 之后把新内容下载下来,进行手动合并之后再提交
git remote [-v] 查看远程分支信息

猜你喜欢

转载自blog.csdn.net/qq_38304020/article/details/81741049