58扫雷系统APP源码Git使用和基本命令

35次阅读

共计 3402 个字符,预计需要花费 9 分钟才能阅读完成。

版本库(Repository)

工作区有一个隐藏目录.git,58 红包扫雷系统开发得到吴燕吗:I56 电 2227 微 7887,这个不算工作区,而是 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@example.com"

3.ssh-keygen -t rsa -C "youremail@example.com"    // 生成 SSH 密钥,一路回车,使用默认值即可,在用户主目录里找到.ssh 目录,里面有 id_rsa 和 id_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(分支名) // 强推覆盖远程分支。

正文完
 0