git常用命令

基本命令:

1、创建一个空目录:
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit

2、git init 命令把这个目录变成 Git 可以管理的仓库:
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/

3、用ls -ah命令查看目录
.git目录

4、用命令git add告诉 Git 把文件添加到仓库:
$ git add readme.txt

5、用命令git commit告诉 Git,把文件提交到仓库:
$ git commit -m “wrote a readme file”

6、运行git status命令看看结果:
$ git status

7、看看具体修改了什么内容 需要用git diff这个命令看看:
$ git diff readme.txt

8、git log命令查看版本:
$ git log

9、如果嫌输出信息太多,看得眼花缭乱的,可以试试加上–pretty=oneline参数:
$ git log --pretty=oneline

10、把当前版本“append GPL”回退到上一个版本“add distributed”,就可以使用git reset命令:
$ git reset --hard HEAD^

11、只要上面的命令行窗口还没有被关掉,指定回到未来的某个版本:
$ git reset --hard 3628164

12、再小心翼翼地看看 readme.txt 的内容:
$ cat readme.txt

13、把暂存区的修改撤销掉(unstage),重新放回工作区:
$ git reset HEAD readme.txt

14、删除文件
$ rm test.txt

15、删错了,把误删的文件恢复到最新版本:
$ git restore – test.txt

分支操作:

1、首先,我们创建 dev 分支,然后切换到 dev 分支:
$ git checkout -b dev

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
$ git branch dev
$ git checkout dev

2、用git branch命令查看当前分支:
$ git branch

3、把 dev 分支的工作成果合并到 master 分支上:
$ git merge dev

4、合并完成后,就可以放心地删除 dev 分支了:
$ git branch -d dev

5、用带参数的git log也可以看到分支的合并情况:
$git log --graph命令可以看到分支合并图。
$ git log --graph --pretty=oneline --abbrev-commit

6、最后,删除 feature1 分支:
$ git branch -d feature1

7、–no-ff参数,表示禁用 Fast forward, Git 就会在 merge 时生成一个新的 commit,这样,从分支历史上就可以看出分支信息。:
$ git merge --no-ff -m “merge with no-ff” dev

Bug 分支

1、把当前工作现场“储藏”起来
$ git stash

2、工作区是干净的,刚才的工作现场存到哪去了?用git stash list命令看看:
$ git stash list

3、恢复一下,有两个办法:
一是用git stash apply恢复,但是恢复后,stash 内容并不删除,你需要用git stash drop来删除;
另一种方式是用git stash pop,恢复的同时把 stash 内容也删了:
$ git stash pop

Feature分支:

1、强行删除分支,需要使用命令git branch -D feature-vulcan
$ git branch -D feature-vulcan

多人协作:

推送分支
远程仓库的默认名称是 origin。

$ git push origin master
$ git push origin dev

抓取分支
1、创建远程 origin 的 dev 分支到本地,于是他用这个命令创建本地 dev 分支:
$ git checkout -b dev origin/dev

2、先用git pull把最新的提交从 origin/dev 抓下来,然后,在本地合并,解决冲突,再推送:
$ git pull

3、git pull也失败了,原因是没有指定本地 dev 分支与远程 origin/dev 分支的链接,根据提示,设置 dev 和 origin/dev 的链接:
$ git branch --set-upstream dev origin/dev
Branch dev set up to track remote branch dev from origin.

4、再 pull:
$ git pull

这回git pull成功,但是合并有冲突,需要手动解决,解决的方法和分支管理中的解决冲突完全一样。解决后,提交,再 push:

$ git push origin dev

其他命令:

1、添加所有文件到仓库:
$ git add --all

2、删除本地仓库:
1.在本地仓库的目录下调用命令行删除根目录下的.git文件夹,输入
find . -name “.git” | xargs rm -Rf
这样本地仓库就清除了,像下面这样,master不见了。

git commit之后,想撤销commit

写完代码后,我们一般这样

git add . //添加所有文件

git commit -m “本功能全部完成”

执行完commit后,想撤回commit,怎么办?

这样凉拌:
git reset --soft HEAD^

这样就成功的撤销了你的commit

注意,仅仅是撤回commit操作,您写的代码仍然保留。

说一下个人理解:
HEAD^的意思是上一个版本,也可以写成HEAD~1
如果你进行了2次commit,想都撤回,可以使用HEAD~2

至于这几个参数:
–mixed
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。

–soft
不删除工作空间改动代码,撤销commit,不撤销git add .

–hard
删除工作空间改动代码,撤销commit,撤销git add .

注意完成这个操作后,就恢复到了上一次的commit状态。

顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:
git commit --amend

此时会进入默认vim编辑器,修改注释完毕后保存就好了。

今天用git commit -m “注释”提交的时候,注释写错了,于是各种查资料开始了和git bash vim的纠缠。。。(网上的资料我真是没操作成功,不过最后还是摸索出来了。

首先 使用 git commit --amend 命令(修改最近一次提交的注释信息),会进入到vim 编辑器

然后 你会发现编辑器里你怎么输入都没反应,这是因为vim处在不可编辑状态,

按下字母键 c(此时进入编辑状态),可以开始修改注释信息了

修改好后,你会发现怎么都退出不了,然后如下操作:

按下Esc (退出编辑状态); 接着连按两次大写字母Z,你会惊喜的发现,终于保存好退出来了!

windows 系统 ,亲测有效!!拿走不谢!

2、其他Git管理参考。

https://blog.csdn.net/youzhouliu/article/details/78952453,Git使用详细教程。

https://github.com/MorvanZhou/tutorials/tree/master/gitTUT,MorvanZhou。

https://segmentfault.com/a/1190000006185954,checkout和reset的区别。


git&githib-给远程库取别名

若想将本地库的代码推送到远程库,就必须知道远程库的位置,有https和ssh两种传输方式

但是呢,你会发现这两个地址长度比较长,不能总是去gtihub上复制或者自己手敲,所以git当然也提供了解决该问题的办法:给访问路径取别名

给远程库取别名的命令:git remote add 别名 远程库路径

想查看别名以及对应远程库的路径,命令:git remote -v


解决Git报错-refusing to merge unrelated histories
https://blog.csdn.net/u012145252/article/details/80628451


git reflog

git checkout master
git reset --hard

Git 删除所有文件
硬盘删除文件后,执行$ git status

会提示你仍然需要$ git rm <文件>

此时如果是要删除大批量文件,这么一个一个命令下去不得累死人啊

其实可以这样(不管之前有没有已经本地物理删除)

执行 $ git rm * -r(记得,cd 到你要删除的目录下。当然 * 可以换成指定目录)

这时删除文件已经进入本地缓存区,

接下来就是正常的提交操作了
git add .
git commit -m “update”
git push origin branchName

petch/pull:

git checkout master
git reset --hard
1
2
git 强行pull并覆盖本地文件

git fetch --all
git reset --hard origin/master

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值