Git使用和基本命令

版本库(Repository)

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

一个git仓库管理一个工程

git init    //创建一个仓库,在工程目录下有一个隐藏的目录.git

git add 文件   //提交到暂存区

git add .  //在工程目录下git add . 就可以提交所有修改的和新建的数据暂存区

git commit -m "说明信息"      //把暂存区内容提交到当前分支

git status      //查看状态

git diff 文件 //查看文件修改,git diff比较文件被git add之前有无差异

git diff --cached 或 git diff --cached //查看已暂存的将要添加到下次提交里的内容的变化

git log //查看日志

git log --pretty=oneline

git log --graph --pretty=oneline --abbrev-commit //查看日志图表

git log -p -2 //-p 选项展开显示每次提交的内容差异,-2 则仅显示最近的两次更新:

git reflog //查看所有提交的log,可以查看每次变动的版本号,方便查阅

git reset --hard HEAD^ //回退到上一个版本

git reset --hard HEAD^^ //回退到上上个版本

git reflog //查看执行过的命令

git checkout -- 文件 //回退到上一次修改

git checkout . //这条命令把 当前目录所有修改的文件 从HEAD中签出并且把它恢复成未修改时的样子

git reset --hard 文件号 //指定回退到版本号对应的文件中去

git reset HEAD 文件 //可以回退版本,也可以把暂存区的修改回退到工作区。用HEAD,表示最新的版本

git rm 文件   //确实要从版本库中删除该文件,删除完再git commit

撤销修改

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD                    <file>,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,前提是没有推送到远程库,先用git reset -- hard HEAD^

创建远程仓库

1.git config --global user.name "Your Name"

2. git config --global user.email "[email protected]"

3.ssh-keygen -t rsa -C "[email protected]"    //生成SSH密钥,一路回车,使用默认值即可,在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥;登陆GitHub,打开“Account settings”,“SSH Keys”页面:然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容

4. git remote add origin 远程库URL //URL时是gihub中的SSH,添加新的远程仓库

5. git push origin master //远程提交 第一次提交用git push -u origin master

6.git remote set-url origin 你的远端地址   //  设置远端仓库地址

7.git remote add <shortname> <url>      //添加一个新的远程 Git 仓库

 eg:git remote add pg https://github.com/paul/tic  //pg为远程仓库名

8.git remote -v   //查看远程仓库

删除远程仓库

git remote rm origin //删除远程 Git 仓库

git clone 远程库URL //克隆一个本地库,从远程仓库中把工程克隆到本地电脑

git remote //查看远程库的信息

git remote show [remote-name] //查看某一个远程仓库的更多信息

git remote rename //去修改一个远程仓库的简写名 git remote rename pg pvul //将 pg 重命名为 pvul

git remote rm [remote-name] //删除指定的远程仓库

分支操作

git checkout -b dev //创建并切换到dev分支,分支名叫“dev”

注:要留意你的工作目录和暂存区里那些还没有被提交的修改,它可能会和你即将检出的分支产生冲突从而阻止 Git 切换到该分支。 最好的方法是,在你切换分支之前,保持好一个干净的状态。

git checkout 分支名 //切换分支

git branch //查看当前分支

git branch 分支名 //创建分支

git merge 分支名 //合并指定分支到当前分支

git branch -d 分支名 //删除分支

git branch -D 分支名 //删除分支

git branch --set-upstream-to=origin/dev dev //指定本地dev分支与远程origin/dev分支的链接,设置dev和origin/dev的链接

git pull    //把最新的更新提交从远程库中抓下来

git pull origin(远程仓库名) master(分支名) //自动的抓取然后合并远程分支到当前分支

git push [remote-name] [branch-name]

git push origin --delete [branch-name] //删除远程的一个分支

git merge --abort //终止合并冲突

git merge --no-ff -m "相关说明信息" 分支名 // --no-ff参数,表示禁用Fast forward

git stash // 把当前工作现场“储藏”起来,等以后恢复现场后继续工作

git stash list //查看工作现场

git stash pop //恢复工作现场同时把stash内容也删了

将远程分支的dev分支重命名为deve分支步骤如下:

1.先删除远程分支: git push --delete origin dev

2.重命名本地分支: git branch -m dev deve

3.重新提交一个远程分支: git push origin deve

标签操作

git tag <name> //打一个新标签 如:git tag v1.0

git tag //查看所有的标签

git tag <name> commit id //给对应的commit id 打一个标签。如:git tag v0.9 f52c633

git log --pretty=oneline //可以查看到标签

git show <tagname> //查看标签信息 如: git show v0.9

git tag -d <tagname> //删除标签,如:git tag -d v0.1

git push origin --delete tag <tagname> //删除远程的标签

git push origin <tagname> //推送某个标签到远程

git push origin --tags //一次性推送全部尚未推送到远程的本地标签

删除远程标签的步骤

1.git tag -d <tagname> //先删除本地标签

2.git push origin :refs/tags/<tagname> //在从远程删除

多人协作模式

首先,可以试图用git push origin <branch-name>推送自己的修改;

如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

如果合并有冲突,则解决冲突,并在本地提交;没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功

重点说明:

如果因为提交错误,可以git reset HEAD^ 回退到你要提交代码时的工作区,重新git add 想要的文件 到暂存区,然后git commit -m "" 提交,然后git push -f origin dev(分支名) //强推覆盖远程分支。

发布了11 篇原创文章 · 获赞 13 · 访问量 1664

猜你喜欢

转载自blog.csdn.net/Psyduck_ing/article/details/101173081