git 常用命令

git 常用命令

创建仓库:

git init

添加邮箱:

git config --global user.email "email@example.com"

添加用户:

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

查看状态:

git status

添加文件到stage区:

git add <filename ...>

提交文件到仓库:

git commit -m "explanation"

查看log:

git log [--pretty=oneline]

查看reflog:

git reflog

版本回退:

git reset --hard <版本id>

回退到上一版本也可这样:

git reset --hard HEAD^

在工作区修改了文件,但还没add到stage区,可以这样撤销工作区的修改:

git checkout -- <filename...>

已经add到stage区,要撤销stage区:

git reset HEAD <file...>

如果已经commit到本地版本库了: 看上面版本回退命令

在工作区删除文件后,再用:

git rm <file...>

之后再用 commit 提交到本地版本库. (也可直接用 git rm <file...> 删除文件,再提交. 不推荐这样)


远程github仓库

创建ssh key:

ssh-keygen -t rsa -C "email@example.com"

(将会在home/.ssh/目录生成 id_rsa 和 id_rsa.pub 文件。然后将id_rsa.pub的内容复制到自己github的账号中.)

查看以存在的远程分支:

git remote

查看更详细信息:

geti remote -v

关联一个远程github仓库:

git remote add origin git@github.com:githubAccountName/repository-name.git

关联后,使用命令git push -u origin master第一次推送master分支的所有内容.
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改.

从github克隆仓库:

git clone git@github.com:githubAccountName/repository-name.git

查看分支:

git branch

创建分支:

git branch <branchName>

切换分支:

git checkout <branchName>

创建并切换分支:

git checkout -b <branchName>

将某分支合并到当前分支:

git merge <branchName>

合并分支(禁止快速合并):

git merge --no-ff <branchName>

删除分支:

git branch -d <branchName>

强行删除没有合并的分支:

git branch -D <branchName>

查看图形log:

git log --graph --pretty=oneline --abbrev-commit

bug分支

引用:

概览:master合并merge解决好的bug后,不要先把dev解印,先合并master,获取里面的bug方案后,在解印。解印时会有提示冲突,需手动改一次文件。

1:在 dev 下正常开发中,说有1个bug要解决,首先我需要把dev分支封存stash

2:在master下新建一个issue-101分支,解决bug,成功后

3:在master下合并issue-101

4:在 dev 下合并master, 这样才同步了里面的bug解决方案

5:解开dev封印stash pop,系统自动合并 & 提示有冲突,因为封存前dev写了东西,此时去文件里手动改冲突

6:继续开发dev,最后add,commit

7:在master下合并最后完成的dev

代码过程如下:

  1. $ git stash

  2. $ git checkout master
    $ git checkout -b issue-101
    //去文件里修bug...
    $ git add README.md
    $ git commit -m "fix-issue-101"

  3. $ git checkout master
    $ git merge --no-ff -m "m-merge-issue-101" issue-101
    $ git branch -d issue-101

  4. $ git checkout dev
    $ git merge --no-ff -m "dev-merge-m" master

  5. $ git stash pop
    //提示冲突,去文件手动改正
    Auto-merging README.md
    CONFLICT (content): Merge conflict in README.md

  6. //继续开发 ... ... ,完成后一并提交
    $ git add README.md
    $ git commit -m "fixconflict & append something"

  7. $ git checkout master
    $ git merge --no-ff -m "m-merge-dev" dev
    $ git branch -d dev


多人开发

推送到远程:

git push origin branch-name 

(推送分支”branch-name”到远程,如果远程没有branch-name 分支,将会创建branch-name分支)

强制推送到远程:

git push origin branch-name -f

在本地创建和远程对应的分支:

git checkout -b branch-name origin/branch-name

抓取远程更新:

git pull  

(如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,根据提示操作即可)


标签

git tag <name> [commit_id]

git tag -a <tagname> -m "comment content" [commit_id]

git tag -s <tagname> -u <gpgKeyId> -m "comment content" [commit_id]

git tag 可以查看所有标签

git push origin <tagname> 可以推送一个本地标签

git push origin --tags可以推送全部未推送过的本地标签

git tag -d <tagname> 可以删除一个本地标签

git push origin :refs/tags/<tagname> 可以删除一个远程标签。


忽略特殊文件

一些特殊文件的规则: https://github.com/github/gitignore

检查哪些规则忽略的该文件: git check-ignore -v <file>

配置命令别名

git config --global alias.<you're alias> <command>

例如: git config --global alias.ci commit
之后就可以用: git ci -m "提交文件了"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值