learngit & git常用指令
目录
- learngit & git常用指令
- 1.add && commit
- 2.status && diff
- 3.log && reset && reflog
- 4.Repositoty(版本库)
- 5.checkout
- 6.rm
- 7.github(push && rm)
- 8.clone
- 9.branch && switch && merge
- 10. --no-ff选项
- 11.bug分支
- 12.branch -D
- 13.合作
- 14.rebase
- 15.tag
- 16.fork
- git的尽头是SourceTree
1.add && commit
git add readme.txt
git commit -m "the 1st version"
2.status && diff
git status #查看git目前在哪一个branch上,以及该branch的状态
git diff readme.txt #查看文件的变化
3.log && reset && reflog
git log
git log --pretty=oneline #可以看到每一个版本的id
git reset --hard HEAD^ #HEAD~10,往上数10个版本
#hard选项表明,这是回退到上个版本已经提交的状态
#当然也可以通过版本id恢复
不幸的是,你已经关闭终端...
在git中,总是有后悔药可以吃的。 ---廖雪峰
git reflog #追溯你的每一步动作
4.Repositoty(版本库)
git 的优越性就在于其对每次修改的追踪而不是对每一个文件的追踪
换言之,一个文件的所有状态都可以被 git 感知,而不是只在乎当前的状态
5.checkout
git checkout -- readme.txt #修改之后没有再add的情况
git reset HEAD readme.txt #将当前缓存区的readme.txt文件舍弃到工作区
#适用于已经add的情况
6.rm
git rm <file>#在工作区删除文件后
该命令等价于 git add <file>
git commit -m "delete sth." #难道是修改版本库的日志吗?
7.github(push && rm)
git remote add origin git@github.com:michaelliao/learngit.git
git branch -M main #分支改名
git push origin main #推送
git remote rm origin
#还有查看远程仓库信息,分支等等,文ai就对了
git的服务器仓库
-
下载此电脑的ssh
-
进入git bash
ssh-keygen -t rsa -b 4096 -C "your_email@xx.com"cat ~/.ssh/id_rsa.pub
-
点击主页GitHub头像->settings->SSH and GPG keys(左侧)->将id_rsa.pub的内容添加进去即可
-
create new repo.
-
根据提示,选择将已有的仓库与之关联(第二种,第一种笨人也没搞懂是在干嘛)
设置双向仓库 √
如果一切顺利的话...
8.clone
git clone git@github.com:user_name/repository_name.git
#在code -> local中查看
9.branch && switch && merge
git branch <name>
git switch <name>
git switch -c <name> #创建并切换
git merge <name> #合并某个分支到当前分支
git branch -d <name> #删除分支
遇到同一文件在不同分支上被反复提交,注意手动修改
10. --no-ff选项
保留dev指针及其单独指向的文件
git merge --no-ff -m "merge with on-ff" dev
11.bug分支
git stash #暂时移走工作区中不能commit的内容
git switch -c issue-101 #创建分支修bug
git add bug.txt
git commit -m "fix the bug"
git switch main
git merge issue-101
git stash pop #恢复现场
12.branch -D
git branch -D <name> #强行删除未合并的分支
13.合作
git clone git@github.com:user_name/repository_name.git
git checkout -b dev origin/dev
git branch --set-upstream-to=origin/dev dev #将本地分支与远程分支建立联系
git pull #手动合并
14.rebase
变直
15.tag
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> #可以删除一个远程标签
16.fork
fork -> clone -> pull request(maybe)
git的尽头是SourceTree
移步Sourcetree | Free Git GUI for Mac and Windows