git命令/入门使用
首先你到了一家新公司工作,当我安装完了一系列的东西后,我就要把gitLab或github线上的代码pull到本地
首先在本地 创建个文件夹, 右键选择git bash打开命令窗
温馨提示:
git branch看自己在哪个分支,或者下方这条信息的最右侧会显示你当前的分支
这个习惯一定要养成,因为做项目一般都有线上,测试,生产的分支, 有时候合代码切分支的时候会忘记切回来(笔者曾经就犯过错,在master分支发完版,忘记切换回开发分支,后期直接开发代码,都提交了master分支上,费了一番功夫才还原回去,希望读者引以为戒,master分支一般是发往线上的,这里的东西我们要绝对的保证干净,这是一个好习惯)
git init 初始化你的仓库
ssh-keygen -t rsa -C"your_email@youremail.com"如果你没有配SSH 还需要配本地的SSH key
出现Enter标识后 一路回车 直至
要求你输入秘钥密码
成功 (gitLab也同理,自己去看一下gitLab的手册)
ssh -T git@github.com 验证一下本地的SSH key跟github连上了吗
成功
登录
不登录你每次交代码,人家不知道你要提交到哪去
这样就会commit记录为是你这个账号操作的
git config --global user.name "your name"
git config --global user.email "your_email@youremail.com"
控制改变远程(github你的仓库)
yourName 远程的地址
yourRepo 你刚才建的仓库
git remote add origin git@github.com:yourName/yourRepo.git
这就算是你本地的东西跟远程勾搭上了
OK 现在就可以进行玩耍了,好开心啊!!!
可以 git clone + github/gitLab 项目的地址 把项目克隆到你目标的文件夹
正常的开发流程应该如下:
找好对应的分支 git pull 将线上的代码拉到本地(更新项目,以后每次开发都要更新一下,队友可能交了代码,如果你不更新却改了一个文件,在你提交代码的时候就会发生冲突,养成良好的习惯)
然后你进行开发,开发过后提交代码
首先我会先把静态资源包全部删掉,例如static,或webpack等build出来的文件
rm -rf + 目录路径(这个命令千万不要打错哦,如果你的项目没有备份,一个 rm -rf / 毁一生)
git add . 全部选中
git commit -m “日志信息”
git push 提交本地代码到远程分支
如果要合分支
git merge origin/master(分支名)
把master分支与当前分支合并
合完分支后 建议逐个文件 git diff 对比改动,进行保留,鼠标右键文件TortoiseGit蓝色小乌龟,里面有很多东西 可以研究一下,例如常用的Revert回退 show log展示某某某提交的信息 等等,都改完之后就可以执行上面的命令提交代码了
玩错了,想回退/前进到某个版本怎么办?
git reset --hard HEAD^ (HEAD~100) 一个^代表回退一个版本
git reset --hard 3628164版本号 笔者认为还是写号比较精准,快速的回到目标版本
每次的 commit 远程分支都帮你做好了记录 找到 目标版本号,回退 所以每次commit信息建议不要乱打,做了什么改动要留个记号,别以后想回退都不知找哪个版本号
回退完了之后 可以先打个包 启一下服务看看,是不是这个版本 别搞错了,
然后 git push -f -u origin master 推送到远程,慎行,执行后会把你的远程分支的此版本后commit全部干掉
但是如果你有版本号 就算干掉也是能来回切的。
如果你要开发 必须干掉,不干掉git pull就又会更新到最新版本,git push也交不了代码 因为交的时候 如果发现你本地代码与远程分支不一致就会报错让你合 你就需要:q! 退出 合并
如果git add .了,又想取消某个文件的管理
git reset HEAD XXX/XXX/XXX.js
常用的命令:
git checkout + 分支名 切换分支 , 若报错 可能没有分支哦 要建好
git log 查历史版本
git reset commit_id 回到某个日志
git log --pretty=oneline查历史版本
git reflog 记录你的每一次命令
git tag -a v1.6.0 -m 'fotomore online subscription' 打标签,一般发线上都会打个标签,以后万一有意外好找
代码冲突,但是你很清楚该保留哪个分支的代码
git checkout --ours <conflict file> 使用当前分支
git checkout --theirs <conflict file> 使用合并分支内容
git push -f -u origin master 回退后 推送到远程