Git init 初始化当前目录为仓库,不要将根目录设置为仓库
Mkdir 文件夹名 创建文件夹 然后初始化为仓库。
Touch 文件名 创建文件:readme.txt
Git add 文件名 将本地文件添加到本地仓库,记录跟踪
Git add . 将当前目录下所有问价add到暂存区
Git commot -m”xxxxx” 将本地库新增文件提交到远程库”记录本次提交简要,简明知意”
Git log 查看当前版本之前的版本
git log --pretty=oneline 显示版本hard
Git reset --hard xxxxx git回退到指定版本xxx代表head
Git reflog 查看所有使用过的git命令
-----------------
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令 git reset --hard commit_id。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
git diff head -- readme.txt 命令可以查看工作区和版本库里面最新版本的区别
git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两 种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模 一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂 存区后的状态
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
Git checkout --test.txt 用版本库内的文件替换工作区版本,无论是更改还是删除都可以还原
但这样或覆盖你在本地做的修改,事先备份一下,回退再提交。
git remote add origin git@server-name:path/repo-name.git 将本地git和gitlub上的工程实现关联
git push -u origin master 第一次推送master分支内所有内容。此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
Git clone 地址 克隆远程仓库到本地http或者ssh都可以
Git branch xxxx 创建分支xxx
Git checkout xxxx 切换到xxxx分支进行 工作
Git checkout -b xxxx 创建并切换到xxx分支工作
Git branch 查看所有分支,当前分支前会加*号
Git merge xxx 合并xxx分支到当前分支
Git merge --no-ff -m”asd” xxx 将xxx分支普通合并到当前分支 能够看到曾经做过合并
Git branch -d xxx 删除xxx分支
Git log --graph 查看分支合并图
Git branch -d xxx 删除分支xxx git提倡创建多的分支,少在主干上修改。
Git log --graph --pretty=oneline --abbrev-commit 查看分支历史及结构图
Git stash 当前工作分支的内容储藏起来,等待之后恢复继续工作,多用于bug 修改时
Git stash list 当前储藏区等待恢复的编号和地址
Git stash pop 恢复储藏区并删除储藏区内容
Git stash apply 恢复储藏区但是不删除储藏区内容
Git branch -D <name> 强制删除名为name的分支。
Gitlub上创建工程必须有一个文件,否则本地和远程关联时有问题,
Git push origin xxx 将本地xxx分支和远程的分支利用origin进行关联起来。
Git checkout -b xxx1 origin/xxx1 作用是checkout远程xxx1分支到本地起名为xxx1,并切换 到xxx1本地和远程分支的名称最好一致
Git pull 当提交的代码和队友冲突时,利用git pull 自动合并冲突文件--吧最新的提交 从远程抓取下来,然后在本地合并,并解决冲突,本地修改需要保留的,再推送
Git pull失败就注意提示信息,如果是没有连接远端连接的话,git branch --set-upstream dev origin/dev 设置本地dev和远程origin/dev连接
因此,多人协作的工作模式通常是这样:
1.首先,可以试图用git push origin branch-name推送自己的修改;
2.如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
3.如果合并有冲突,则解决冲突,并在本地提交;
4.没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。
这就是多人协作的工作模式,一旦熟悉了,就非常简单。
Git tag 标签默认打在当前分支最新的commit上,也可以打在指定的提交上git tag v1.0 ( commit id) commit id 通过git log --pretty=oneline --abbrev-commit 查 看id 打标签是也可以附加说明 git tag -a v1.1 -m “xxxxxxxx” 打版本1.1附 加xxxx说明, git show tagname 查看标签具体信息
Git push origin v1.1 将本地标签推送到远程,git push origin --tags 推送所有本地标签
Git tag -d v1.1 删除标签 删除远程的标签需要先删除本地的标签,之后 git push origin :refs/tags/v1.1 可以删除远程的标签。
Git config --global alias.unstage 'reset HEAD' 给命令添加别名,git unstage test.py==git reset HEAD test.py