git常用命令

git学习链接(推荐):http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

git init 把这个目录变成Git可以管理的仓库
git add file,...把文件添加到暂存区
git commit -m "msg" 把暂存区的所有内容提交到当前分支
git diff file
git status
git log 可以查看当前版本之前的提交历史
git reset --hard HEAD^ 上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
cat file
git reflog 查看命令历史,以便确定要回到未来的哪个版本
git checkout -- file 可以丢弃工作区的修改,让这个文件回到最近一次git commit或git add后的状态
git reset HEAD file 可以把暂存区的修改撤销掉(unstage),重新放回工作区:
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,git reset --hard HEAD^,不过前提是没有推送到远程库。
rm file 删除工作区文件
git rm file 删除文件并添加到暂存区stage

ssh-keygen -t rsa -C "youremail@example.com" 创建SSH Key
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

git branch 查看分支
git branch <name>创建分支
git checkout <name>切换分支
git checkout -b <name>创建+切换分支
合并某分支到当前分支:git merge <name>
git branch -d <name>删除分支
git branch -D <name>强行删除一个没有被合并过的分支
git merge命令用于合并指定分支到当前分支,默认Fast-forward模式
--no-ff强制禁用Fast forward模式,Git就会在merge时生成一个新的commit -m "提交信息"

git stash 当手头工作没有完成时,先把工作现场git stash存储一下,然后去分支修复bug
git stash pop切换到原分支后,回到工作现场
git stash list 多次stash列表
git stash apply name 指定的现场

git remote -v 查看远程库的信息
git remote add origin git@server-name:path/repo-name.git已有的本地仓库与之远程库关联
git push origin branch-name 推送本地分支branch-name的提交到远程对应分支(若没有对应分支会创建)

  1. master分支是主分支,因此要时刻与远程同步;
  2. dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
  3. bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
  4. feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。

git push -u origin branch-name 第一次推送时链接远程分支
git checkout -b branch-name origin/branch-name 创建远程仓库分支到本仓库
git branch --set-upstream branch-name origin/branch-name 创建本地分支和远程分支的链接关系
git pull 抓取当前分支最新的提交

git tag <name>用于新建一个标签
git tag -a <tagname> -m " ..."可以指定标签信息
git tag可以查看所有标签
git push origin <tagname>可以推送一个本地标签
git push origin --tags可以推送全部未推送过的本地标签
git tag -d <tagname>可以删除一个本地标签
git push origin :refs/tags/<tagname>可以删除一个远程标签

原文地址:https://www.cnblogs.com/yoohot/p/6640991.html