请大家转载的话,请知乎我一声,并标明出处,谢谢。
今天有点空,刚刚写完了,上一个博客,现在看看还是时间就谢谢一个关于git的用法的博客吧。
我分了五个小点。
请参考下面的例子,都是我亲测的。
一、第一次下载git代码或者分支。
例如我们需要下载这个分支下的dev分支的代码。
ssh://git@10.9.236.75:10022/zhenghx/chan-pc-web-base-mgmt.git
我们可以这样使用
git clone ssh://git@10.9.236.75:10022/zhenghx/chan-pc-web-base-mgmt.git
cd chan-pc-web-base-mgmt //如果用的是github是没有项目目录的。可以不用 cd
git fetch origin dev:dev //上面默认clone的是master分支,但是如果你有多个分支,并且想下远程dev分支到本地dev分支
注意:我这个是SSH,所以是需要配置公钥与私钥的,当然你也可以用HTTPS的git路径
如:
git clone https://github.com/vicoqi/SpringMVC-Simple-realize.git
git fetch origin dev:dev 的意思是,获取到远程分支的dev分支,并在放到本地仓库dev(如果没有新建),origin 就是远程的仓库,当然这个远程仓库你可以有多个,但是我们一般都用一个,多个容易混乱。
下载完了之后你会看到 .git目录。
二、提交代码到远程仓库,请大家严格按照这个流程来,我项目组中就是严格按照我的操作截图流程来的,基本上没有出错过。
下面的截图是提交代码的流程。
git checkout dev 首先我们需要切换分支,因为我们必须要知道我们需要提交代码到那个远程分支
我们一般用git fetch origin dev, 然后再用 git merge origin/dev 合并远程分支,在本地处理代码冲突。
git pull origin dev 不是很推荐用这种方式,在团队合作开发的时候。
git status 这个命令希望大家经常敲,它可以查看工作区与缓存区的文件情况,防止文件误提。
git add . 这个命令是把所有的工作区改动的文件提到缓存区。点号就是所有的意思,如果只想提一个就指明文件名称就好。
上一步我们提交到缓存区后,我们需要执行上面的命令,把刚刚提交到缓冲区的代码提交到本地仓库,- m 的意思是本次提交的注释。
最后一步,我们需要把本地仓库的代码提交到远程仓库。
注意:如果你开始没有执行上面的 git pull origin dev 。那么你这一步很可能会出现 merge 的问题,需要你合并,因为你的改动的代码文件和别人发生冲突了,搞不好你会覆盖别人提的代码,所以为了减少这个概率,我们一定要在提代码之前执行 git pull origin 分支名称。如果发生了merge问题大家也不用慌,后面会教给大家分支版本回退。
三、提交本地分支到远程
新建分支
git branch a
git remote -v
git branch
git branch -r
git push origin develop:develop2
git push origin develop:V1
git push origin :V1
四、查看差异
git diff 比较的是工作区和暂存区的差别
git diff --cached 比较的是暂存区和版本库的差别
git diff HEAD 可以查看工作区和版本库的差别
五、回退版本
我们可以使用
git log
但是有事可能比较乱。我们可以用别名代替长命令
git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%
d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
git lg
以后我们就可以直接用 git lg 来查看版本了。
我们用 git log 可以看到每一次提交记录都有一个 commit 记录它,它就是每次提交的版本号
git reset --hard HEAD commit版本号
这个 -- hard 的意思是是否强制覆盖更改的。
git reset --hard HEAD^
今天就先写五个小点,后面如果有添加的我会继续写的。谢谢大家