1.本地仓库提交
git init
(在当前项目路径下,初始化本项目的本地仓库)
git add .
(点表示当前项目路径下所有的文件,添加到本地缓存区)
git commit -m ‘注释‘
(提交到本地仓库)
2.和远端创建链接和推
git remote add origin https://github.com/huangxia666/xxx
(和远端git仓库建立连接)(修改本地config配置文件)
git remote -v
查看本地仓库和远端git仓库映射状态
git push -u origin master
将本地仓库提交到远端仓库的master分支上(首次提交要加-u)
3.本地创建分支提交到远端分支
git branch
查看分支
git branch xxx
本地创建分支
git checkout xxx
切到xxx分支
git push -u origin xxx
提交到远端xxx分支上
4.拉代码
git clone https://github.com/huangxia666/xxx.git
拉取远端仓库xxx全部分支和代码
git pull
本地先切到指定分支上,pull的时候就会拉取指定分支上的代码(先和远端仓库建立连接)
git branch //查看本地所有分支
?
git branch -r //查看远程所有分支
?
git branch -a //查看本地和远程的所有分支
?
git branch <branchname> //新建分支
?
git branch -d <branchname> //删除本地分支
?
git branch -d -r <branchname> //删除远程分支,删除后还需推送到服务器
git push origin:<branchname> //删除后推送至服务器
?
git branch -m <oldbranch> <newbranch> //重命名本地分支
/**
*重命名远程分支:
*1、删除远程待修改分支
*2、push本地新分支到远程服务器
*/
?
//git中一些选项解释:
?
-d
--delete:删除
?
-D
--delete --force的快捷键
?
-f
--force:强制
?
-m
--move:移动或重命名
?
-M
--move --force的快捷键
?
-r
--remote:远程
?
-a
--all:所有
git fetch
是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
而git pull
则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge
,这样可能会产生冲突,需要手动解决。
生成ssh密钥
1.进入到~/.ssh
路径下
2.运行命令ssh-keygen -t rsa -C ‘xxx.@yy.zzz‘
3.在.ssh文件生成了两个文件 id_rsa.pub 和id_rsa,将id_rsa.pub中的内容加到git服务器上
冲突
解决办法:git pull origin xxx
后面增加--allow-unrelated-histories
把两段不相干的 分支进行强行合并
1.未使用git add
缓存代码
git checkout -- filename
git checkout . # 放弃所有文件的修改
2.已经git add
缓存了代码
git reset HEAD filepathname # 放弃指定文件的缓存
git reset HEAD . # 放弃所有文件的缓存
# 再执行1
git checkout -- filename # 或者 git checkout .
3.已经git commit
提交的代码
git reset --hard HEAD^ # 回退到上一次commit的状态
git reset --hard commitid # 回退到定义的提交版本
git commit --amend 既可以对上次提交的内容进行修改,也可以修改提交说明。
git push --force
git tag 2.1
我们常常在代码封板时,使用git 创建一个tag ,这样一个不可修改的历史代码版本就像被我们封存起来一样,不论是运维发布拉取,或者以后的代码版本管理,都是十分方便的
git push --tags
原文:https://www.cnblogs.com/Justintime/p/13177184.html