git init [文件夹名] //初始化git仓库
git remote add <name> <url> //创建了一个与远端仓库的关联关系 name为这个关联的别名
git status //查看状态
git diff //显示暂存区和工作区的差异
git config --global user.name "用户名" //设置提交代码时的用户信息
git config --global user.email 邮箱 //设置提交代码时的用户信息
git log [--oneline 查看提交记录编码] //查看提交日志
git log --decorate //可以查看标签
git add [-p 分批] [ . 所有/文件名/文件夹名] //添加变更内容到暂存区
git rm [--cached停止跟踪] [文件名] //删除文件
git commit [文件名/文件夹名] -m "提交注释" //提交变更内容到本地库
git commit -a -m "提交注释" //提交自上次commit之后的变化直接到本地仓库区
git commit -v -m "提交注释" //提交时显示所有diff信息
git commit -amend -m "提交注释" //新的commit替换上一次提交,如果代码没变化,则提交注释
git push <远程主机名> <本地分支名>:<远程分支名> //上传到远程仓库,如果本地分支和远程分支相同,则可以省略冒号。
git push -u origin 本地分支名:远程分支名 //-u 全称是upstream,上游的意思,主要用于建立本地和远程分支之间的关联,后面直接使用 git push 命令进行推送,而不需要再次指定远程仓库和分支名
git push origin master --force //如果本地与远程版本有差异,强制推送使用 --force 参数
git push origin --delete master //删除 origin 主机的 master 分支
git pull <远程主机名> <远程分支名>:<本地分支名> //从远程获取代码并合并本地的版本
git clone 远程路径 //克隆仓库
git remote //列出所有的远程主机
git remote -v //显示所有远程仓库
git tag <v1.0> //打标签
git tag -a 版本号 //打标签,并添加注释
git tag -a <tagname> -m "message" //附注标签,附注标签存储了创建者的名字、电子邮件、日期,并且可以包含标签信息
git tag -a v1.0 commit-hash //补交标签,commit-hash是提交的编号
git push origin <tagname> //推送标签到远程仓库
git push origin --tags //推送所有标签到远程仓库
git tag -d <tagname> //删除本地标签
git push origin --delete <tagname>//删除远程标签
git checkout (branchname) //切换分支
git checkout -b <branchname>//创建分支
git branch -d <branchname> //删除分支
git branch -D <branchname> //强制删除未合并的分支
git push origin --delete <branchname> //删除远程分支
git branch [-r/-a]//查看所有本地分支 -r所有远程分支 -a本地和远程所有分支
git merge <branchname>//合并branchname分支到当前分支
--合并冲突
1、按标记手动解决冲突文件
2、git add <conflict-file> //添加合并文件到暂存区
3、git commit //提交合并结果
--创建远程分支
1、先拉取数据,保证本地仓库是最新
git pull origin [master/其他分支名]
2、创建本地新的分支
git checkout -b 新的分支名
3、推送新分支到远程仓库,-u 主要用于建立本地和远程分支之间的关联
git push -u origin 新的分支名
--远程撤销版本上传
使用git revert或git reset
1、查询git提交的编号commit-hash
git log --oneline
2、【方法一】重新指向版本的编号commit-hash,此种方法会重写项目历史(慎用)
git reset <--hard/--soft/--mixed> <commit-hash> //soft,mixed,hard三种模式
hard 直接删除指向版本之后的内容
soft 删除的内容保存到暂存区
mixed 删除的内容保留到工作区
2、【方法二】 创建一个新的提交来撤销指定的改动,也是重新指向版本的编号commit-hash
git revert <commit-hash>
3、强制推送到远程仓库
git push origin <分支名> --force
区别:1、reset是彻底回退到指定的commit版本,该commit后的所有commit都将被清除;而revert仅是撤销指定commit的修改,并不影响后续的commit。2、reset执行后不会产生记录,revert执行后会产生记录。