git常用命令

创建一个仓库
mkdir nnn //创建仓库
git init //初始化仓库(要在目录内)

touch readme.txt //创建文件
cat readme.txt   查看文件

git status //查看仓库状态

git add readme.txt //添加文件至暂存区
git commit -m "hhh" //把暂存区的提交到仓库 "hhh"是备注(可以有多次add,但只有一次commit)

git log --pretty=short //加--pretty=short 只显示提交信息的第一行

git diff         //查看修改
git diff HEAD //查看工作区与最新提交的差别

回退版本

git reset --hard HEAD^  回退到上一个版本,用HEAD表示当前版本修改撤销
git checkout -- readme.txt  丢弃工作区的修改(修改了文件但是还没有add)
git reset HEAD readme.txt   (add了,还没有commit)把暂存区的修改撤销掉,重新放回工作区(再用上一个命令)

分支:

查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>  //需要add和commit后
删除分支:git branch -d <name>

远程库:

关联远程仓库(需要在github上面添加SSH KEY)git remote add origin git@server-name:path/repo-name.git;(我的git remote add origin git@github.com:bobnumbertwo/learngit.git)
关联后使用命令git push -u origin master第一次推送master分支的所有内容;
此后使用命令git push origin master推送master分支的最新提交;推送分支,就是把该分支上的所有本地提交推送到远程库

从远程仓库克隆一个仓库git clone git@github.com:bobnumbertwo/learngit.git

查看远程库信息,使用git remote -v;
在本地创建和远程分支对应的分支,git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,git branch --set-upstream branch-name origin/branch-name;
从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交,然后再推送;
本地新建的分支如果不推送到远程,对其他人就是不可见的;

标签:

命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;
命令git tag -a <tagname> -m "blablabla..."可以指定标签信息
命令git tag可以查看所有标签
命令git push origin <tagname>可以推送一个本地标签
命令git push origin --tags可以推送全部未推送过的本地标签
命令git tag -d <tagname>可以删除一个本地标签
命令git push origin :refs/tags/<tagname>可以删除一个远程标签

思考:

在dev分支上修改了文件,但是并没有执行git add. git commit命令,然后切换到master分支,仍然能看到dev分支的改动,这个现象怎么解释?
因为未add的内容不属于任何一个分支, 未commit的内容也不属于任何一个分支。 也就是说,对于所有分支而言, 工作区和暂存区是公共的

修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash一下(git add 但没有commit),然后去修复bug,修复后,再git stash pop,回到工作现场;
在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick <commit>命令,把bug提交的修改“复制”到当前分支,避免重复劳动。

总的来说,就是,在dev分支下进行的工作,如果不commit的话,回到master,就会显示出你在分支下所添加的工作。这个时候,你在master下修改完bug提交后,正在分支进行的工作也会提交了。为了避免这个情况,你就在分支下,git stash将工作隐藏,这个时候,切换到master时候,修改了bug,提交。分支的内容不会被提交上去。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值