GitHub代码管理代码托管
发布时间:2018-07-23, 16:06:17 分类:Linux | 编辑 off 网址 | 辅助
图集1/6
正文 3155字数 1,364,226阅读
新建提交
cd
git init
git add .
git add README.md
git commit -m "iswtf"
git remote add origin https://github.com/dubaiyouyue/iswtf.git
git push -u origin master
Run code
Cut to clipboard
Gitshell登录
git config --global user.name "Your Name"
git config --global user.email "youremail@example.com"
Run code
Cut to clipboard
常用命令
Git 常用命令图
Git 常用命令图
git branch 查看本地所有分支
git status 查看当前状态
git commit 提交
git branch -a 查看所有的分支
git branch -r 查看远程所有分支
git commit -am "init" 提交并且加注释
git remote add origin git@192.168.1.119:ndshow
git push origin master 将文件给推到服务器上
git remote show origin 显示远程库origin里的资源
git push origin master:develop
git push origin master:hb-dev 将本地库与服务器上的库进行关联
git checkout --track origin/dev 切换到远程dev分支
git branch -D master develop 删除本地库develop
git checkout -b dev 建立一个新的本地分支dev
git merge origin/dev 将分支dev与当前分支进行合并
git checkout dev 切换到本地dev分支
git remote show 查看远程库
git add .
git rm 文件名(包括路径) 从git中删除指定文件
git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来
git config --list 看所有用户
git ls-files 看已经被提交的
git rm [file name] 删除一个文件
git commit -a 提交当前repos的所有的改变
git add [file name] 添加一个文件到git index
git commit -v 当你用-v参数的时候可以看commit的差异
git commit -m "This is the message describing the commit" 添加commit信息
git commit -a -a是代表add,把所有的change加到git index里然后再commit
git commit -a -v 一般提交命令
git log 看你commit的日志
git diff 查看尚未暂存的更新
git rm a.a 移除文件(从暂存区和工作区中删除)
git rm --cached a.a 移除文件(只从暂存区中删除)
git commit -m "remove" 移除文件(从Git中删除)
git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)
git diff --cached 或 $ git diff --staged 查看尚未提交的更新
git stash push 将文件给push到一个临时空间中
git stash pop 将文件从临时空间pop下来
Run code
Cut to clipboard
分支/Tag版本管理
本地的分支管理
创建分支
创建后会自动切换到新创建的分支
切回master分支
合并
fetch更新本地仓库两种方式
远程分支管理
创建远程的dev分支到本地
本地Tag管理
查看标签
远程Tag管理
推送到远程
所有的标签一次推送到远程
删除标签
本地
远程
本地的分支管理
创建分支
git branch dev
Run code
Cut to clipboard
创建后会自动切换到新创建的分支
git checkout -b dev
Run code
Cut to clipboard
切回master分支
git checkout master
Run code
Cut to clipboard
合并
git checkout master // 切换到master
git merge debug // 合并debug到master
Run code
Cut to clipboard
$git push origin test:master // 提交本地test分支作为远程的master分支
Run code
Cut to clipboard
git pull <远程主机名> <远程分支名>:<本地分支名>
git pull origin xf:xf
git push <远程主机名> <本地分支名>:<远程分支名>
git push origin xf:xf
Run code
Cut to clipboard
fetch更新本地仓库两种方式
//方法一
$ git fetch origin master //从远程的origin仓库的master分支下载代码到本地的origin master
$ git log -p master.. origin/master//比较本地的仓库和远程参考的区别
$ git merge origin/master//把远程下载下来的代码合并到本地仓库,远程的和本地的合并
//方法二
$ git fetch origin master:temp //从远程的origin仓库的master分支下载到本地并新建一个分支temp
$ git diff temp//比较master分支和temp分支的不同
$ git merge temp//合并temp分支到master分支
$ git branch -d temp//删除temp
Run code
Cut to clipboard
$ git clone http://github.com/jquery/jquery.git
Run code
Cut to clipboard
远程分支管理
git push -u origin master
Run code
Cut to clipboard
创建远程的dev分支到本地
git checkout -b dev origin/dev
Run code
Cut to clipboard
本地Tag管理
git tag -a v1.0 -m "第一个里程碑的突破"
Run code
Cut to clipboard
查看标签
git tag
Run code
Cut to clipboard
远程Tag管理
推送到远程
git push origin v1.0
Run code
Cut to clipboard
所有的标签一次推送到远程
git push origin --tags
Run code
Cut to clipboard
删除标签
本地
git tag -d v1.0
Run code
Cut to clipboard
远程
git push origin :refs/tags/v1.0
Run code
Cut to clipboard
(支付宝)给作者钱财以资鼓励 (微信)→
有过 6 条评论 »
在.git\config配置文件中加:
[http] postBuffer = 524288000
/databases/ /logfiles/ /新建文件夹/ /cache/ /others/ /wwwroot/u/ /wwwroot/simsun.ttc /wwwroot/favicon.ico /wwwroot/新建文件夹/ /wwwroot/images/ /team20180605.sql /wwwroot20180605.rar /upload/ /Uploads/ /images/ /Cache/ /布局/ /tx/ /config/config_db.php
C:\windows\system32\drivers\etc 151.101.72.133 assets-cdn.github.com 151.101.72.133 github.global.ssl.fastly.net 52.74.223.119 github.com http://tool.chinaz.com/dns
清除本地DNS缓存
@echo off ipconfig /flushdns
git clone , git fetch, git pull和git rebase
Git Pull
pull时,它将会获取远程服务器(你请求的,无论什么分支)上的代码,并且立即合并到你的本地厂库,Pull是一个高等级的请求,默认会支持Fetch和merge的操作,如果不是为了使用上的方便,你可以完全不使用它。
$git checkout localbranch $git pull origin master $git branch master *localbranch
上面的命令会将远程服务器上的master分支合并到localbranch中。
Git Fetch
fetch和pull很相似,只是fetch不会做任何的合并操作。
$git checkout localbranch $git fetch origin remotebranch $git branch master *localbranch remotebranch
因此,fetch指是获取remotebranch,然后创建一个本地copy,你不应该直接对这个copy做任何的操作,而应该应该创建一个本地分支,然后在本地分支上进行工作。
Git Clone
clone将会克隆一个本地厂库,
$cd newfolder $git clone git@github.com:whatever/something.git $git branch *master remotebranch
clone会为它被克隆的远程repo创建一个名为“origin”的local repo,并为远程repo的活动分支创建一个本地分支以及远程跟踪分支。
git rebase
这个命令相当的cool,你对当前分支所作的任何改变都被保存到一个临时区域,因此你的分支将会和改变之前一样干净。如果你用git pull -rebase,git将会获取远程的改变,遍历当前本地分支,然后替换你当前分支的所有改动。
如果你在使用过程中遇到了问题,使用
git branch -a
$ git push origin
上面命令表示,将当前分支推送到origin主机的对应分支。
如果当前分支只有一个追踪分支,那么主机名都可以省略。
$ git push 如果当前分支与多个主机存在追踪关系,那么这个时候-u选项会指定一个默认主机,这样后面就可以不加任何参数使用git push。
$ git push -u origin master 上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。
不带任何参数的git push,默认只推送当前分支,这叫做simple方式。此外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方式。
一、背景 在各操作系统下,文本文件所使用的换行符是不一样的。UNIX/Linux 使用的是 0x0A(LF),早期的 Mac OS 使用的是0x0D(CR),后来的 OS X 在更换内核后与 UNIX 保持一致了。但 DOS/Windows 一直使用 0x0D0A(CRLF)作为换行符。Git提供了一个“换行符自动转换”功能。这个功能默认处于“自动模式”,当你在签出文件时,它试图将 UNIX 换行符(LF)替换为 Windows 的换行符(CRLF);当你在提交文件时,它又试图将 CRLF 替换为 LF。Git 的“换行符自动转换”功能听起来似乎很智能、很贴心,因为它试图一方面保持仓库内文件的一致性(UNIX 风格),一方面又保证本地文件的兼容性(Windows 风格)。但遗憾的是,这个功能是有 bug 的,而且在短期内都不太可能会修正。 二、解决方案 1.Git设置 git config --global core.autocrlf false git config --global core.safecrlf true 含义: AutoCRLF #提交时转换为LF,检出时转换为CRLF git config --global core.autocrlf true #提交时转换为LF,检出时不转换 git config --global core.autocrlf input #提交检出均不转换 git config --global core.autocrlf false SafeCRLF #拒绝提交包含混合换行符的文件 git config --global core.safecrlf true #允许提交包含混合换行符的文件 git config --global core.safecrlf false #提交包含混合换行符的文件时给出警告 git config --global core.safecrlf warn 2.IDE设置使用UNIX换行符 IDEA的设置File -> Settings Editor -> Code Style Line separator (for new lines) ,选择:Unix and OS X (\n) 对已使用Windows换行符的文件,可以使用Sublime Text打开, View->Line Endings,选Unix,保存;
crlf 和 lf 是文本换行的不同方式:
crlf: "\r\n", windows系统的换行方式
lf: "\n", Linux系统的换行方式
他们之间的不同经常会导致不同会导致使用不同系统的同事之间的代码冲突问题。
在你使用git拉取代码的时候,git会自动将代码当中与你当前系统不同的换行方式转化成你当前系统的换行方式,从而造成这种冲突。
window系统解决办法:
1. 修改git全局配置,禁止git自动将lf转换成crlf, 命令:
git config --global core.autocrlf false
2. 修改编辑器的用户配置,例如vscode
"files.eol": "\n", // 文件换行使用lf方式
直接 svn up -r 2105 当前的工作版本就是版本2105了 但是注意,这时svn库中会并不会生成新的版本,下次在本地svn up之后,还是会回到之前的版本。