[git init]-命令可以把这个目录变成Git可以管理的仓库
[git add <file>]-把文件添加到仓库
[git commit -m "Message"]-把文件提交到仓库
- git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
[git status]-命令可以让我们时刻掌握仓库当前的状态
[git diff]-查看具体修改了什么内容
[git diff HEAD -- <file>]-查看工作区和版本库里面最新版本的区别
[git log]-命令显示从最近到最远的提交日志
- 如果嫌输出信息太多,看得眼花缭乱的,可以试试加上 --pretty=oneline 参数
[git reset]-把当前版本回退到上一个版本
-
好了,现在我们启动时光穿梭机,准备把readme.txt回退到上一个版本
-
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
-
现在,我们要把当前版本回退到上一个版本,就可以使用git reset命令:[git reset --hard HEAD^]
-
从旧版本回到新版本命令:[git reset --hard commit_id]
[git reflog]-查看命令历史,以便确定要回到未来的哪个版本。
[git checkout -- <file>]-丢弃工作区的修改
- 文件在工作区的修改全部撤销,这里有两种情况:
- 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
- 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
- 总之,就是让这个文件回到最近一次git commit或git add时的状态。
[git reset HEAD <file>]-可以把暂存区的修改撤销掉(unstage),重新放回工作区
- git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
[git rm <file>]-用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删。
关联远程仓库
-
[git remote add origin \github.com/your_accoun…]-关联一个远程仓库
-
[git remote add origin git@github.com:Your_account/Project_name.git]-关联一个远程仓库
-
[git push -u origin master]-第一次推送master分支的所有内容
-
[git push origin Slave_name]-把本地Slave_name分支的最新修改推送至GitHub
推送与拉取
-
[git push -u origin master-第一次推送master分支的所有内容
-
[git push origin Slave_name]-把本地Slave_name分支的最新修改推送至GitHub
-
[git clone git@github.com:Your_account/Project_name.git] -拉取远程master分支内容
-
[git pull origin Slave_name]-把远程Slave_name分支的内容拉取到本地
从远程库克隆
- [git clone https//github.com/your_account/Project_name.git]-从远程克隆仓库到本地
- [git clone git@github.com:Your_account/Project_name.git]-从远程克隆仓库到本地
分支管理
-
[git checkout -b Slave_name]-相当于以下两条命令
-
[git branch Slave_name]-创建分支Slave_name
-
[git checkout Slave_name]-切换到分支Slave_name
-
-
[git branch]-查看当前分支
-
[git merge Slave_name]-命令用于合并 Slave_name 分支到当前分支
- 合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
-
[git branch -d Slave_name]-命令用于删除Slave_name分支
-
[git switch -c Slave_name]-创建并切换到新的分支
-
[git switch master]-直接切换到已有的master分支
-
-
[git log --graph]-查看分支合并图
BUG分支
-
[git stash]-可以把当前工作现场”储藏”起来,等以后恢复现场后继续工作。
-
[git stash list]-查看被“储藏“起来的工作现场。
-
[git stash apply]-恢复被“储藏“起来的工作现场。
-
[git stash drop]-恢复工作现场后删除stash中的内容。
-
[git stash pop]-恢复的同时把stash内容也删除
-
[git cherry-pick commit_id]-把bug提交的修改(commit)“复制”到当前分支,避免重复劳动。
[git branch -D Slave_name]-强制删除一个尚未提交的分支
[git remote ] -查看远程仓库的信息,详细参数可在后面加[-v]
标签管理
-
[git tag <tagname> <HEAD>]-给当前分支打标签
- 最后参数默认为HEAD,也可以指定成commit id;
- [git tag -a <tagname> -m "Version 0.1 released"]-指定标签信息
-
[git tag]-查看所有标签
-
[git push origin <tagname>]-推送一个本地标签。
-
[git push origin --tags]-可以推送全部未推送过的本地标签。
-
[git tag -d <tagname>]-可以删除一个本地标签。
-
[git push origin :refs/tags/<tagname>]-删除一个远程标签。