Git 常用命令

git
注:在使用的任何的 git 命令前,都要切换到 git 项目目录下

git init 
初始化一个 git 仓库

git status 
查看当前 git 仓库的状态

git add file 
修改 file 文件的状态为添加,并没有提交,只是存在缓存区

git rm –cached file 
更改 add 后的文件的状态为无状态(从缓存区移除)

git config user.name yu 和 git config user.email yuehongjie93@gmail.com 
添加 git 用户,在进行提交之前如果没有配置用户会报错,这是针对当前 git 仓库的 
git config –global user.name yu ,可以使用 –global 参数设置全局的

git commit -m message 
提交缓存区内容并附带提交信息

git log 
显示提交日志

git config core.autoclrf false 
解决每次使用 git 命令 ( add , commit ) 的时候会报 warning: LF will be replaced by CRLF in XXXX 
这是自动添加换行 ( linux 下格式) 引起的问题,可以使用 –global 参数设置全局有效

git tag v1.0 
为当前的状态打个 v1.0 的标签

git tag 
查看历史 tag 记录

git branch 
查看当前分支的情况

git branch a 
在当前的基础上新建一个分支名字为 a

git checkout a 
切换分支到 a

git checkout -b a 
综合上面两个命令,如果 a 分支不存在,在当前基础上创建分支 a 并切换到 a

git checkout v1.0 
切换到 tag v1.0 时的状态

git checkout ffd9f2dd68f1eb21d36cee50dbdd504e95d9c8f7 
切换到某次 commit ,这个长序列是每次 commit 的 SHA1 值,可以使用 git log 查看

git checkout test.txt 
撤销 test.txt 的改变,注 checkout 命令只能撤销还没有 add 进暂存区的文件

git merge a 和 git rebase a 
把 a 分支的内容合并到 master 分支,前提要先切换到 master 分支,两个做法的区别是: 
merge 是把 a 中的内容全部粗暴的合并进来,rebase 会先比较内容改变的顺序,再按顺序合并

git branch -d a 
删除分支a

git branch -D a 
强制删除分支a

git config –global alias.co checkout 
alias 为 checkout 起别名为 co,然后在输入命令的时候,就可以使用 git co 替代 git checkout ,如果只针对当前仓库 global 不是必须的

git log 的 NB 的用法 
git log –graph –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit –date=relative 
格式化日志的输出,可以很清晰的展现日志信息和分支走向 
这么难写却又牛逼的命令我们必须给起个别名: 
git config –global alias.lg “log –graph –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit –date=relative” 
然后就可以使用 git lg 就可以了

git config –global color.ui true 
给git的输出着色

git config –global core.quotepath false 
设置显示中文文件名 
在没设置显示中文名之前,我创建了一个新文件 中文名.txt ,然后使用 git status 查看一下显示如下: 
 
设置显示中文名后,显示如下: 


stash 命令 
使用场景,如你正在一个分支 a 上修改着代码什么的,但是这时候,有一个紧急的任务,需要你切换到另一个分支 b 去做些工作, 
而 a 上的代码还是个半吊子,不想去 commit 甚至不想去 add ,这时候 stash 命令就大有用处了,前提是没有执行 commit

git stash 
把当前分支没有 commit 的代码先暂存起来,这时使用 git status 会发现分支很干净 


git stash list 
可以看到此时暂存区多了一条记录 
 
暂存成功后,你就可以切换到 b 去做其他的功能 
b 分支的事情做完后,就可以再切换回 a 分支,继续之前的工作

git stash apply 
 
执行后, a 分支之前的代码就又回来了,然后做好把暂存区的 stash 记录删除

git stash drop 
就是把最近的一条 stash 记录删除, drop 后还可以跟 stash_id 来删除指定的记录 


git stash pop 
这个命令相当于同时执行了 apply 和 drop ,谨慎起见,使用 git stash list 查看一下是否确实删除了该记录 


git stash clear 
清空暂存区的所有记录,drop 只是删除一条,drop 后可以跟 stash_id 来删除指定的记录,不跟就是删除最近的

冲突解决 
假设我在 a 分支和本地分支上同时修改了文件 test.txt ,在合并的时候就会出现冲突 


用git diff可以查看冲突 

为用户fork一份代码仓

git fork

设置上有URL

git remote add upstream <URL>

将code pull到user 用户的代码仓

git pull upstream <user>

git add .

git commit -s

git push --set-upstream origin <user>  

 

 


解决冲突要做的就是修改冲突的文件 test.txt 为最终想提交的内容,并去掉其中的标识符 
(标识符: ++<<<<<<< HEAD;++=======; ++>>>>>>>>) 
修改然后 add 和 commit
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值