jy166102 发表于 2018-1-12 15:28:06

Git相关内容

  先聊一点关于gitlab的内容和github的内容
  Gitlab和GitHub,都是我们可以存放代码库的地方。不过Gitlab可以免费的存储私人代码,GitHub需要花钱才能够存储私人代码库,不过我想人家的初衷可能是本着尽量让你开源的动机。哈哈。
  为了管理好我们的代码库,要准备好这么几样

[*]Mac的常用终端命令:

[*]查询常用Mac 终端命令后可以发现,和Unix常用命令好像一样。可能是Mac OS的最底层基于Unix吧。

[*]Git的常用命令

[*]推荐的一些博客:Git帮助文档    猴子都能懂的Git    Git中文常用命令    Git中文常用命令(简短)

  谈一点关于Gitlab的使用部分

[*]申请账号

[*]我之前都是用GitHub,公司用过Gitlab,不过那也是公司给的授权的邮箱账号直接登录就好了,如果是自己注册Gitlab失败的话,可以试试用第三方登录(比如用gmail或者是直接也用GitHub的账号登录)

[*]谈谈登录后提交代码相关的内容,我们需要配置好SSH key的后才能有权限操作代码库

[*]生成SSH key
[*]一点注意事项:当我们生成完了SSH key以后注意到 相应的目录下(家目录的 .ssh 的文件里边)。
[*].ssh是隐藏文件,如果是没有看到相应文件使用快捷键("Command" + "Shift"+ "." 可以显示隐藏文件、文件夹,再按一次,恢复隐藏;)。
[*]等我们生成好了ssh key注意在相应的目录下是否真的有了记得验证,还有记得把相应的公钥添加到Gitlab要求添加的SSH那里,否则可能在pull 或者是push代码的时候出现permission的问题
[*]还有一点注意的是,如果是选用SSH 的方式pull 或者是push代码,如果是有结合使用Source Tree的话,注意要把远端的地址,设置成SSH 形式的地址,避免出现问题
[*]还有一点是有的时候我们的远端的master可能设置了不能直接从本地推送到远端的master分支,如果是那样的话,可以先推送到dev等分支,然后在Gitlab里边再合并
[*]还有如果要是要修改SourceTree默认的推送的是https改成SSH的方式的话可以使用vi编辑相应文件做改动,这个以后补上

  光说不练假把式

[*]常用的Mac终端命令

[*]ls : 列出当前路径下的文件列表(在生成好ssh key后可以在目录下看看ssh key是否真的存在了)
[*]"cmd"+ "k" (清空名目上的内容)
[*]cd ~ : cd到家目录相应的再cd ~/.ssh 就可以到 存放ssh key的目录下了   cd - 是返回到上一级目录
[*]pwd:打印当前的文件所在路径(可以在生成好了在切换进入到.ssh 文件下后,检测一下是否是在.ssh 目录下)
[*]cat 文件名 : 查看文件内容
[*]control + z终止终端一些未完的输出(比如说在用git log的时候不想看后边的内容的时候)
[*]control + c 终止任务(比如说是在使用cocoapods的update的过程中想终止的时候)
常用的Git命令(其实我还总是终端命令结合着SourceTree 一起使用,因为感觉还是用SourceTree可以很直观的看到代码的改动的地方)

[*]mkdir 文件名 :创建文件
[*]git init : git初始化
[*]git config user.name: 查看用户名
[*]git config user.email:查看用户email
[*]git config user.name "ITCoderW" : 设置用户名
[*]git config user.email "itcoderw@gmail.com" : 设置用户邮箱(哈哈写个高逼格邮箱)
[*]git config --global user.name :查看全局配置的用户名
[*]git config --global user.email : 查看全局配置的用户邮箱
[*]git config --global user.name "ITCoderW":设置全局配置的用户名
[*]git config --global user.email"itcoderw@gmail.com": 设置全局配置的用户邮箱
[*]git add . : 把所有的改动的文件存储到暂存区
[*]git stash :把所有的没提交的文件删除掉
[*]git commit -m "提交信息" :提交的时候填写的提交信息
[*]git log :查看提交的历史记录       git log --oneline :(查看的历史记录都是以 一次提交占用一行的形式呈现的)
[*]git status :
[*]git reflog :查看历史记录包括那些回退过的版本的git记录

[*]git reflog 可以查看所有分支的所有操作记录(包括(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录:
[*]参考网址:http://blog.csdn.net/ibingow/article/details/7541402

[*]git branch :查看当前所有分支
[*]git branch "liveFeatureBranch" : 如果还没有liveFeatureBranch 就会创建一个liveFeatureBranch (注意在哪个分支下git branch 的,则新生成的分支将会和其分支下的内容一样)
[*]git checkout "liveFeatureBranch" : 切换到liveFeatureBranch
[*]git branch -d "liveFeatureBranch" : 删除liveFeatureBranch
[*]git branch(如果是显示master)   gitmerge dev :则为合并dev到master : 合并dev到merge之前的git branch显示的分支
[*]git reset --hard ^ : 退回到上次提交
[*]git reset --hard "某次提交的提交编号" : 退回到提交编号的那次提交
[*]git clone "https/SSH代码库网址"克隆代码
[*]git remote -v : 查看远端的信息
[*]git log --left-right --oneline origin/分支名称

[*]参考网址:https://www.zhihu.com/question/32294027

[*]git remote add origin "远端地址" : 添加远端地址(可以把用终端的形式的本地和远端联系起来)
[*]git remote set-url origin "远端地址" (改变远端的地址的时候使用)

[*]  Github “fatal: remote origin already exists”


[*]

[*]git push origin master : dev: 把本地的master分支推送到远端的dev分支
[*]git push -f : 强行推送
[*]git pull origin master:dev   :把远端的dev拉取到本地的master
[*]git pull相当于git fetch 然后再merge
[*]git tag "version x" :打标签版本号

  可能遇到的问题:

[*]提交到git上的文件只有一个文件夹,目录下的内容没有提交上去:

[*]可能是自己要添加的文件里边包含.git 文件,删除相应的.git 文件就可以成功提交文件下的所有内容了
[*]参考网址:  Git Add . 无法添加文件夹下的文件git push后在github上文件夹是灰色的?github上文件夹都是灰色-解决办法

[*]需要版本回退使用:

[*]git reset --hard "提交编号": 回退到某个版本
[*]git push -f :   强行推送

[*]git reflog : 查看那些之前可能被你回退的比较全的log(备用)

[*]参考博客:http://blog.csdn.net/fuchaosz/article/details/52170105

  扩展内容:

[*]How can I add an empty directory to a Git repository?
[*]  git学习 - 添加文件追踪,取消文件追踪
  先写到这么多吧,持续更新
  如有问题,敬请指正
  如需转载,请注明出处,谢谢!
页: [1]
查看完整版本: Git相关内容