git 命令很多,但是主要用到的就几个,现整理下,方便查询:
git连接方式:
http 方式 http://120.25.157.120/mywork.git
ssh 方式 ssh://aaa@120.25.157.120:mywork.git (aaa为登录用户)
git新建本地(或在服务器)仓库:
git init
初始化git后,新增文件
git add remark.md
初始化git后,提交文件
git commit -m '备注'
第一次提交,会提示
*** Please tell me who you are. Run git config --global user.email "you@example.com" git config --global user.name "Your Name"
执行解决:
git config --global user.email "你的邮箱" git config --global user.name "你的名字"
git拷贝远程代码版本到本地:
git clone http://120.25.157.120/mywork.git
git查看本地分支:
git branch
git查看远程分支:
git branch -a
或
git branch -r
新建分支并跟踪远程对应分支,同时,切换到新建的分支(签出):
git checkout -b branchName origin/branchName
注意:当远程新建的分支,本地没有更新时,需要更新下,以上命令才会生效(git fetch 或者git pull下,git fetch:相当于是从远程获取最新版本到本地,不会自动merge;git pull 相当于是从远程获取最新版本并merge到本地)。
git切换本地分支:
git checkout branchName
注意:代码随分支文件而改变,如切换到master,当前仓库的代码就为master文件。
拉取远程分支代码到本地分支(拉取):
git pull origin/branchName
相当于是从远程获取最新版本并merge到本地
当然也可以直接
git pull
因为当前分支跟踪对应的是远程分支。
从远程分支获取本地分支缺失文件(检出):
git checkout -- readme.txt(文件名)
或检出当前目录下所有文件
git checkout .
注意,–必须要加上,否则会创建一个分支。
提交文件(提交):
git add readme.txt
注意:这只是提交到本地版本库,还没同步到远程分支,如需要推送到远程分支,则需要推送后才行。
推送文件到远程版本库(推送):
git commit -m “ 推送说明。。。” //提交 git push //推送
查看git 文件状态(未提交、忽略等信息):
git status
查看git 推送日志信息:
git log
回滚到某个版本(当发现推送错了或者发现bug需要回滚):
git reset –hard HEAD^
回退到上上个版本
git reset –hard HEAD^^
以此类推;或者回退到某个版本:
git reset –hard 6fcfc89(版本号)
本地回滚后,强制推送到远程分支,使之同步:
git push -f origin master
拉取最新远程文件并强制覆盖本地文件:
git reset --hard git pull
从其它分支提取文件
git checkout [branch] -- [file name]
新建远程git仓库拒绝push的时候,设置配置文件config
[receive] denyCurrentBranch = ignore
解决冲突一般方法:
1、用代码库中的文件完全覆盖本地工作版本
git reset --hard git pull
2、保留生产服务器上所做的改动,仅仅并入新配置项
git stash git pull git stash pop
创建ssh连接key: ssh-keygen -t rsa -C "youremail@example.com" 生成key后,打开id_rsa.pub,复制公钥到gitlab、github即可
记住git提交账户和密码:
git config --global credential.helper store
将本地分支提交到远程分支(关联):
git checkout -b dev_new //新建本地为xn的分支并切换至xn分支 git push origin dev_new:dev_new//将本地xn分支推送至远程dev分支
删除远程分支:
git push origin :dev_new//将一个空分支推送到远程即为删除 //或者 git push origin --delete dev_new
git嵌套git仓库:
git clone git://github.com/username/project.git cd project git submodule add git://github.com/username/framework.git framework git commit -m "added framework submodule"