git命令小结

git命令个人小结

Windows 使用 Git Bash 练习git命令

首先在本地新建一个文件夹

mkdir learngit #创建一个名为learngit的文件夹

cd进入该文件夹初始化本地仓库

git init 

在工作区(本地仓库)修改文件并保存后,提交到暂存区

git add 文件名	#(记得带文件扩展名)

确认无误后,把整个暂存区的文件都提交到“当前分支”

git commit -m "注释"

当第二天工作时,你需要修改本地仓库的文件,修改完毕保存后,可查看本地仓库状态

git status

若你想将修改后的本地仓库的文件与“当前分支”相比较有何具体更改,可用

git diff

当你修改了很多遍,并且每次都commit提交到“当前分支”的话,那你想查看每次提交的历史就简单多了,可用

git log --pretty=oneline #--pretty=oneline 作用是将每次提交的记录输出到一行

由于HEAD代表当前版本,要是想回退到上个版本可用HEAD^ ,要是想回退到上100个版本可用HEAD~100

git reset --hard HEAD^
git reset --hard HEAD~100

你要是想回退到原来的版本,可用之前log里面的原先HEAD的commit_id,就可以指定回到哪个版本

git reset --hard commit_id

在Git中,一直都有一个可以用于记录每次操作的命令

git reflog

如果你不小心敲了一行不该有的代码

$ cat readme.txt
本地仓库
已经add到暂存区 - commit 到分支
ssss
stupid boss #不该有的一行

在提交(add)前,被你发现了,你可以用

git restore readme.txt 来撤销更改

若你已经add到暂存区了,然后你再修改,那么

git restore readme.txt 就只能回到add后的状态了。

删除文件:

1)若你想彻底删除已经提交到"当前分支"的文件

rm readme.txt
git rm readme.txt
git commit

2)若你只是不小心删了,那可以用

git restore readme.txt 来撤回

远程仓库:

1、先拥有一个github账号
2、然后在Git Bash 输入ssh-keygen -t rsa -C "alan_d_xing@163.com"#邮箱要换成你自己的
3、将.ssh文件夹里面生成的id_rsa_pub里面的内容复制到github的 SSh-key里面

添加远程仓库

1、先在github上创建一个仓库
2、然后在Git Bash里面用git remote add origin git@github.com:alanxing1122/learngit.git
(#origin为自定义远程仓库名,可同时拥有几个远程库,每个远程仓库独立一个名)
(#alanxing1122是我的github用户名)
(#learngit是我在github上所创的库名)
3、git push -u origin master 
(#将本地库master分支所有内容推送到远程库)
(#第一次用需要 -u ,将本地仓库和远程仓库关联起来,以后就不用 -u 了)

克隆远程仓库

git clone git@github.com:alanxing1122/learngit.git

创建分支

git branch dev
(dev 为 <branch name>)

创建并切换分支

git switch -c dev
或git checkout -b dev

查看分支

git branch

切换分支

git switch master

合并分支

git merge --no-ff -m"注释" dev
(在master分支上,将dev分支不使用快速模式合并到master)

删除分支

git switch -d dev 
(删除已合并过的分支,如果没合并过,-d要变成-D)

解决冲突

master、A分支修改了readme.txt(A先修改,master后改)
然后都commit了,
要是此刻,你在master合并A分支,那么冲突就产生了

你只需要将冲突文件修改后
git add readme.txt
git commit -m"注释,如conflict fixed"

git分支管理 – bug

2020年1月30日 16:53:18


1、当我在dev分支搞一件比较棘手需耗时较长的项目时,收到反馈master分支有bug,
这是十分头疼。(因为不能不手头上的工作先add 再commit ,这样会影响开发协同合作)
这时,我们就可以用“git stash” 这个命令将当前的工作隐藏起来,接着去修复bug。

2、切换到master分支,并创建bug分支issue-xxx:

git switch master

git checkout -b issue-xxx

3、修复完提交后再回来dev分支,接着恢复之前的工作环境继续工作。
git switch dev

git stash pop

(查看stash 里面有啥,可用git stash list)

4、由于dev是从master里面分出来的,master有bug意味着dev也是有bug的。最快捷修复bug的方法就是:
git switch dev

git cherry-pick(issue-xxx的id)

git分支管理 --feature

当我收到指示,要开发一个clear新功能时,我就可以使用feature分支


1、新建一个feature分支

git switch -c feature-clear

2、完成后切回对应分支,如dev分支进行合并
1)git switch dev
2)git merge feature-clear

3、要是在合并功能前,突然不想要这个新功能了,那么你可以删除该功能分支
git branch -D feature-clear
(要注意,因为该分支还没进行过合并,所以删除它时,需要用到“-D”)

多人协作

2020年1月30日 17:45:53

当你要查看远程库时

git remove

(一般远程库是origin)

当你要查看远程库的详细信息时

git remove -v

(必须得有权限才能看到远程库的抓取和推送地址,不然啥都没)

推送分支到远程库

使用的命令是 git push <origin-name> <local_branch-name>

当你想要推送本地某分支上的所有已在本地提交过的文件到远程库时,你需要制定本地分支。

如,我想要推送本地的master到远程库origin
git push origin master

从远程库抓取分支

使用的命令:git pull

模拟场景:
1)你要加入我们项目组,要先clone我们的库,
命令:
git clone git@github.com:github用户名/git仓库名.git

2)clone完的本地库只有master分支,由于我们都是在dev分支上开发的,若你要加入开发的话,必须得创建origin上的dev分支
git checkout -b dev origin/dev

3)然后在本地的dev上修改完内容就可以随时push到远端
git add

git commit -m“”

git push origin dev

4)若你和你的小伙伴不经意同时修改了同一份文件,并且他先推送到远端,而你后推送的话,就会报错
此时你要先git pull 把最新的抓取下来,然后再本地合并,解决冲突,再提交到远端。

标签管理

2020年1月30日 22:08:33


1、创建标签
    1)选择所要打标签的分支(如dev)
        git switch dev
    2)打赏标签(如v1.0)
        git tag v1.0
    3)可对以往提交的历史版本打标签(仅需要接ID即可)
        git tag v0.1 "版本ID"      

2、操作标签
    1)删除本地标签
        git tag -d v0.1
    2)推送单个本地标签到远端
        git push origin v1.0
    3) 推送多个本地标签到远端
        git push origin --tags
    4)删除远端库标签
        a)先删除本地标签
            git tag -d v1.0
        b)再删除远端标签
            git push origin :refs/tags/v1.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值