#1 简易将现有项目提交到码云
git init #初始化
git add . #将当前目录加入到git
git commit -m "提交的描述信息" #git提交到本地版本库
# 先在gitee上创建好仓库
#git本地库连接远程版本库,这一步会有对应输入账号和密码的操作
git remote add origin https://gitee.com/xxx/xx.git
#将本地库上传到远程版本库(master分支)
git push -u origin master
第一次上传远程的时候记得
# 好像是 从远程拉到本地
git pull --rebase origin master
配置name & email
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
创建版本库
git init 文件名 //会多出一个隐藏.git目录
git commit //告诉Git,把文件提交到仓库
git commit -m "说明" //添加说明
git status //可以让我们时刻掌握仓库当前的状态
git diff readme.txt //查看文件修改内容(本地) 即本地文件当前和修改前的对比
git diff HEAD -- readme.txt //可以查看工作区和版本库里面最新版本的区别
git log //查看历史提交记录 //可用 --pretty=oneline 参数只显示版本号
git reset --hard HEAD^ // 让本地文件退回到上一个版本 或者用 git reset --hard 版本号 回到指定版本
git reflog //用来记录你的每一次命令
git checkout -- 文件名 //丢弃工作区的修改 就是让这个文件回到最近一次git commit或git add时的状态
git reset HEAD <file> //可以把暂存区的修改撤销掉(unstage),重新放回工作区
#删除文件 : 先本地删 然后 git rm 文件名 再commit
#本地误删则 git checkout -- 文件名
#git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
创建SSH Key
ssh-keygen -t rsa -C “1179794786@qq.com”
在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,
id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。git remote add origin https://gitee.com/xxx/xx.git
#git本地库与远程版本库相连git push -u origin master # 把本地库的所有内容推送到远程库上(第一次加 -u 之后就不用了)
git clone https://gitee.com/xxx/xx.gi //克隆一个远程库到本地
分支管理
git checkout -b dev //创建dev分支,然后切换到dev分支
相当于
$ git branch dev //创建
$ git checkout dev //切换
git branch //查看当前分支
git merge 参数 dev //把dev分支合并到当前分支 (假设 当前为master)
// git merge命令用于合并指定分支到当前分支
参数: --no-ff 表示禁用Fast forward(此时Git就会在merge时生成一个新的commit,
Fast forward模式: 这种模式下,删除分支后,会丢掉分支信息。)
-m 添加commit描述
git branch -d dev //删除dev分支
以上创建切换用 git switch 更好
git switch -c dev //创建并切换
git switch master //切换到master分支
**Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容(没看懂)**
$ git log --graph --pretty=oneline --abbrev-commit //用带参数的git log也可以看到分支的合并情况
//git log --graph命令可以看到分支合并图。
git stash //把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash list //查看当前分支的工作现场
git stash apply //恢复,但是恢复后,stash内容并不删除,
git stash drop //删除;
或者
git stash pop //恢复的同时把stash内容也删了
可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:
$ git stash apply stash@{0}
git cherry-pick commit_id //把特定的提交 的修改 复制到当前分支
多人协作
$ git remote //查看远程仓库信息 还可以加参数 -v
$ git push origin master //推送分支,就是把该分支上的所有本地提交推送到远程库。
git checkout -b dev origin/dev //创建远程origin的dev分支到本地
$ git branch --set-upstream-to=origin/dev dev //指定本地dev分支与远程origin/dev分支的链接
git pull //把最新的提交从origin/dev抓下来 ???/
$ git rebase //把分叉的提交历史“整理”成一条直线,看上去更直观。缺点是本地的分叉提交已经被修改过了。
标签
进入您要的分支
$ git tag v1.0 //标签名是v1.0
git tag v0.9 f52c633 //f52c633是那个版本号
$git tag
还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:
$ git tag -a v0.1 -m "version 0.1 released" 1094adb
git show <tagname>可以看到说明文字
git remote add origin http://xxxxxt.git //关联远程库 这里的origin 是默认的远程库名称
git remote -v //查看远程库信息
git remote rm origin //删除已有的GitHub远程库
git pull、git push和git fetch
git fetch
把远程仓库所有分支代码指针更新到本地指针文件中,但是不把新代码合并到当前分支
git fetch origin master:获取origin主机的master分支的代码。
git pull
获取远程主机的指定分支,并合并到本地某个分支,相当于git fetch+git merge。
完整格式:git pull <远程主机名> <远程分支名>:<本地分支名>
git push
将本地分支的提交,推送到远处主机的指定分支。如果不存在远程分支,那么新建远程分支。
完整格式:git push <远程主机名> <本地分支名>:<远程分支名>
配置别名
git config --global alias.别名 status/'reset HEAD'
git pull --rebase origin master //什么用?还没搞懂 远端和本地同步,只有没有的东西才会被pull下来