Git常用命令

1.在当前项目目录中生成本地git管理,并建立一个隐藏.git目录
git init
2.添加当前目录中的所有文件到索引,或者git add <file>
git add .
3.提交到本地源码库,并附加提交注释
git commit -m "first commit"
小结,现在总结一下:
4.HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令
git reset --hard commit_id
5.穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
$ git log;$ git log --pretty=oneline
6.要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
git reflog
7.查看工作区的文件状态,从来没有被添加过,它的状态是Untracked
git status
8.每次修改,如果不用git add到暂存区,那就不会加入到commit中。
9.把readme.txt文件在工作区的修改全部撤销,命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令
git checkout -- readme.txt
小结
10.场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令。
git checkout -- file
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。
11.把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库
git remote add origin git@github.com:michaelliao/learngit.git
12.把本地库的内容推送到远程,由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
git push -u origin master
13.把本地master分支的最新修改推送至GitHub
git push origin master
小结
14.要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
15.远程库已经准备好了,下一步是用命令git clone克隆一个本地库
git clone git@github.com:michaelliao/gitskills.git
小结
16.查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
17.推送分支,就是把该分支上的所有本地提交推送到远程库。
git push origin master
18.在dev分支上开发,就必须创建远程origin的dev分支到本地,于是他用这个命令创建本地dev分支:
git checkout -b dev origin/dev
就可以在dev上继续修改,然后,时不时地把dev分支push到远程:
git add env.txt
git commit -m "add env"
git push origin dev
19.推送失败,因为你的小伙伴的最新提交和你试图推送的提交有冲突,解决办法也很简单,Git已经提示我们,先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送:
git pull
git pull也失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置dev和origin/dev的链接:
git branch --set-upstream-to=origin/dev dev
20.因此,多人协作的
首先,可以试图用git push origin <branch-name>推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。
21.Git撤销一次分支的合并Merge
git merge --abort
22.合并时遇到冲突想取消操作,恢复index,用git merge --abort
git reset --hard 可以回退到某个提交
git revert可以撤销某个提交,撤销会产生一个新的提交
23.Git退回哪个版本
用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
git reset --hard HEAD~数字

原文地址:https://www.cnblogs.com/PengChengLi/p/9351013.html