Git命令学习笔记
创建版本库
mkdir learngit # 创建Git工程目录
cd leargit # 进入目录
pwd # 查看当前工作路径
git init # 把目录编程Git仓库
增加和提交文件
git add readme.txt 添加readme.txt文件
git commit -m <message> 提交修改到git,注释为<>中内容
git status 查看git状态
git log 查看git日志
git log --pretty=oneline 日志以一行显示
git diff 查看修改内容
删除文件
rm test.txt 在本地删除文件
git rm test.txt 在工作区删除
版本回退
git reset --hard HEAD^ 回退到上一个版本
git reset --hard <commit_id> 回退到指定id版本
git reflog 查看命令历史
远程仓库
A.添加远程库
添加远程库是指将本地库关联到远程库并进行更新提交。
(1)使用命令生成ssh密钥:
ssh-keygen -t rsa -C "youremail" #生成ssh密钥
执行以上命令后会在当前目录下面生成.ssh的隐藏文件夹,里面有id_rsa和id_rsa.pub两个文件,这两个是SSH密钥对,id_rsa是私钥,不能泄露,id_rsa.pub是公钥。
(2)设置ssh和创建仓库:
在GitHub中添加SSH,在Key文本框里粘贴id_rsa.pub的内容。在个人目录下新建空仓库。
(3)在本地learngit下运行命令:
关联本地库和远程库
git remote add orgin git@github.com:woshitxm/leargit.git
关联远程仓库后将本地库推送到远程库:
git push -u origin master #提交修改
此后,修改后可以通过命令在本地更新远程库:
git push origin master
B.从远程库克隆
假设A已经更新的代码库到GitHub,B可以通过以下命令将远程库克隆到自己的电脑:
git clone git@github.com:woshitxm/leargit.git
分支操作
git checkout -b dev # 创建并转到dev分支
git branch # 查看分支
git checkout master # 转到master分支
git merge dev # 合并分支到master
git branch -d dev # 合并完成则可以删除dev分支
同时,也可以使用以下命令操作分支
git switch -c dev # 创建并转到dev分支
git switch master # 转到master分支
解决冲突
解决冲突就是在commit出现问题时,手动修改冲突部分,重新commit。
查看分支合并情况
git log --graph # 查看分支图
更简洁的查看分支图
git log --graph --pretty=oneline --abbrev-commit
储藏当前分支
git stash 储藏当前工作
git stash list 查看储藏的工作空间
恢复stash内容:
git stash apply 恢复stash
git stash drop 删除stash
或者直接用git stash drop,恢复stash同事删除已存内容
恢复指定的stash:
git stash list@{id}
将修改适应到{id}的分支
git cherry-pick {id}
删除未合并的分支
删除未合并的feature分支
git switch -c feature-vulcan
git add vulcan.py
git status
git switch dev
git branch -d feature-vulcan
git branch -D feature-vulcan #强行删除
远程分支管理
git remote #查看远程库信息
git remote -v #查看更详细的信息
git push origin master #推送master分支
git push origin dev #推送dev分支
如果推送失败,需要先pull再push
git pull
在本地创建和远程分支对应的分支:
git checkout -b <branch-name> origin/branch-name
建立本地分支和远程分支的关联:
git branch --set-upstream <branch-name> origin/branch-name
使用Rebase让分支图更简洁
git log --graph --pretty=oneline --abbrev-commit
git rebase
git log --graph --pretty=oneline --abbrev-commit
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>
可以删除一个远程标签。
本地库链接多个远程库
关联两个远程库
首先删除已关联为orgin的库:
git remote rm origin
接着,关联GitHub远程库:
git remote add github git@github.com:woshitxm/learngit.git
然后,关联Gitee远程库:
git remote add gitee git@gitee.com:woshitxm/learngit.git
注意,关联默认名为origin
,现在为了区分,分别命名为:github
和gitee
。
查看远程库信息,关联成功后可以查看到两个库:
git remote -v
推送
git push github master #推送到GitHub
git push gitee master #推送到Gitee
这样,就可以同时将本地仓库推送到多个远程库。
配置别名
配置别名可以使用简写代替原命令,使得git工作更加高效。常用的有:
st
标识status
co
表示checkout
ci
表示commit
br
表示branch
git config --global alias.st status #使用st代替status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
其中,--global
参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用。