git使用命令
1.基本使用
git init
仓库初始化git add <file>
添加文件到仓库git add .
将所有修改过的文件git add -u
将所有修改或已删除的tracked文件添加到暂存区git add -A
将所有文件的修改和删除文件添加的暂存区git rm <file>
从版本库中删除文件git rm <file> --cached
从版本库中删除,但不删除本地文件git checkout -- <file>
取消工作区文件的修改git checkout -- .
取消所有工作区文件的修改
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
git reset HEAD <file>
从暂存区恢复到工作文件git reset
从暂存区恢复所有文件到工作区git reset HEAD^
工作区不改变,但是暂存区会回退到上一次提交之前,引用也会回退一次。git reset --hard HEAD^
彻底撤销最近的提交。引用回退到前一次,而且工作区和暂存区都会回退到上一次提交的状态。自上一次以来的提交全部丢失。git reset (--hard) commit_id
回退到某个版本,--hard参数表示是否保留工作区的修改
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
git commit -m "what are you doing?"
文件提交git log --pretty=oneline --graph
显示提交日志
--pretty=oneline 日志一行简要显示
--graph 图形化显示日志
git reflog
查看命令日志,可以用来确定要回到未来哪个版本
2.分支操作
git branch
git checkout -b <name>
git checkout <name>
git merge <name>
git merge --no-ff -m "instructions" <name>
合并分支到当前
--no-ff 保留分支信息
git branch -d <name>
删除分支git branch -D <name>
强制删除分支
3.远程仓库操作
git remote add origin git@github.com:luna825/learngit.git
关联一个远程库git push -u origin master
第一次git clone https://github.com/luna825/lunablog.git
克隆一个远程仓库git remote -v
显示远程仓库
-v会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL
git fetch origin
获取远程仓库中有,但你没有的信息git push origin master
推送到远程仓库git remote show origin
查看远程仓库git pull
会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支。git remote rename pb paul
修改远程仓库的名字git remote rm paul
删除远程仓库
4.远程分支
git push origin serverfix
推送分支
这里有些工作被简化了。 Git 自动将 serverfix 分支名字展开为 refs/heads/serverfix:refs/heads/serverfix,那意味着,“推送本地的 serverfix 分支来更新远程仓库上的 serverfix 分支。
你也可以运行 git push origin serverfix:serverfix,它会做同样的事 - 相当于它说,“推送本地的 serverfix 分支,将其作为远程仓库的 serverfix 分支” 可以通过这种格式来推送本地分支到一个命名不相同的远程分支。 如果并不想让远程仓库上的分支叫做 serverfix,可以运行 git push origin serverfix:awesomebranch 来将本地的 serverfix 分支推送到远程仓库上的 awesomebranch 分支。
git merge origin/serverfix
远程分支合并到当前分支.最好使用本命令来合并分支,因为git pull
会合并所有跟踪的分支git checkout -b serverfix origin/serverfix
新建本地分支并将远程分支clone下来(建立了track)
git checkout --track origin/serverfix
简写
git branch -u origin/serverfix
设置已有的本地分支跟踪一个刚刚拉取下来的远程分支git branch -vv
这会将所有的本地分支列出来并且包含更多的信息,如每一个分支正在跟踪哪个远程分支与本地分支是否是领先、落后或是都有