#常用命令
看这个:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html?bsh_bid=5983510
#--------------------
#初始化,增加版本库
git init
#或者直接远程克隆
git clone http://
#--------------------
#加入文件
git add -A #或者--all增加所有,适用第一次初始化,,Git2.0起,all是git add的默认参数,可用git add .代替
git add . #增加新增和修改的,排除删除的
git add -u #增加更新和删除的,排除新增的
git add -i #查看所有修改过或已删除文件但没有提交的文件
git add -h #其他参数可以用这个命令查看
#--------------------
#commit提交到仓库
git commit -m "" #快捷命令可以写成 git ci -m 需要系统设置
#查看commit提交记录
git log --pretty=oneline
git log --graph --pretty=oneline --abbrev-commit
# 修改上一次的commit
git commit --amend
#会弹出一个vi修改界面,在最上面修改保存即可
#--------------------
#拉取和提交到远程仓库
# 下载远程仓库的所有变动
$ git fetch [remote]
# 显示所有远程仓库
$ git remote -v
# 显示某个远程仓库的信息
$ git remote show [remote]
# 增加一个新的远程仓库,并命名
$ git remote add [shortname] [url]
# 取回远程仓库的变化,并与本地分支合并
$ git pull [remote] [branch]
# 上传本地指定分支到远程仓库
$ git push [remote] [branch]
# 强行推送当前分支到远程仓库,即使有冲突
$ git push [remote] --force
# 推送所有分支到远程仓库
$ git push [remote] --all
阮一峰和廖雪峰双峰大神教程可解决Git所有基础问题:
Git基础:
Git进阶
带'(撇号)和其他的commit实际上还是存在两个分支上,只是以线性显示出来。
撤销所有修改和新增:
# 如果还未add到暂存区
git checkout -- .
git clean -xdf
# 如果已经add到暂存区
git reset --hard
git clean -xdf
# git clean -xdf #意思是清理所有未跟踪文件,也就是新增的未add的文件,注意忽略文件也会被删除,危险
查看commit记录
git log --pretty=oneline
git log --graph --pretty=oneline --abbrev-commit
修改历史commit
# 修改上一次的commit
git commit --amend
#会弹出一个vi修改界面,在最上面修改保存即可
#修改多次历史commit,说实话,能搞,但是太繁琐了,难怪王垠说git是反人类
===================
理解git的核心图形
所有git 命令后面加入 -h参数可以看到说明
git add -h
git remote -h
一次性增加所有文件命令,在add之前最好先规划好忽略文件,命令参考资料
git add -A #或者--all增加所有,适用第一次初始化,,Git2.0起,all是git add的默认参数,可用git add .代替
git add . #增加新增和修改的,排除删除的
git add -u #增加更新和删除的,排除新增的
git add -i #查看所有修改过或已删除文件但没有提交的文件
git add -h #其他参数可以用这个命令查看
git add -i 命令详情参考:http://hubingforever.blog.163.com/blog/static/171040579201231110371044/
在add之前应该先增加忽略文件.gitignore文件,最好先设置忽略一下常见的系统文件:参考网站,也可以参考github提供的例子
# 全局忽略.DS_Store(Mac下)及其他文件,
# 创建全局设置文件,然后在~/.gitconfig 中引用即可
vi ~/.gitignore_global
# 文件内容:
####################################
######## OS generated files ########
####################################
.DS_Store
.DS_Store?
#ide配置文件
.idea
*.swp
._*
.Spotlight-V100
.Trashes
Icon?
ehthumbs.db
Thumbs.db
####################################
############# Packages #############
####################################
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
#git引入全局文件
vi ~/.gitconfig
#加入一下内容
[core]
excludesfile = /Users/hero/.gitignore_global
第一次从本地push到服务器的时候,出错代码:error:failed to push some refs to ...,git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去,解决办法:参考网站
# 第一种,加参数-f强制覆盖
git push -f
#第二种,将服务器上的和本地合并,然后再push上去
git fetch
git merge
git远程操作五大命令,参考网站
git clone #克隆
git remote #管理远程主机,-h可以看到所有参数,remove可以移除已有的远程主机git remote remove origin
git fetch
git pull
git push
日常操作:
新建:
- 先在git的网站新建好项目
- 然后在本地克隆:git clone url
- 将本地代码拷贝进去
- 将所有代码放到git清单:执行git add -A
- git commit -m "初始化"
- 将本地推送到服务器端:git push -u origin master
拷贝:
- git clone url
逐步撤销
- 已修改还未add:
git checkout -- file #-- 要加上 不然就变成切换分支
- 已add还未commit:
git reset HEAD #HEAD 代表是当前暂存区 #如果之前没有提交过 git rm -r --cached .
- 已commit还未push:
git reset --hard HEAD^ #--hard不保留修改,注意 # 已commit表示暂存区已经提交到了仓库,HEAD^表示是上一版本 # git reset --soft : 取消了commit # git reset --mixed(默认): 取消了commit ,取消了add # git reset --hard : 取消了commit ,取消了add,取消源文件修改
- 已push:
git reset --hard HEAD^ git push --force
git commit -m 输入换行符
先输入git commit -m 'some things
然后输入 \ 回车
可以连续回车,最后输入单引号'回车提交即可
来源:oschina
链接:https://my.oschina.net/u/107233/blog/611834