设置用户名和邮箱
git config --global user.name "tom"
git config --global user.email "chenyucheng@embedsky.net"
把当前目录设置成git目录
git init
文件名 readme.txt
git add 文件名
如果git add readme.txt,还没有commit。想回退一个版本
git rm --cached readme.txt
git commit -m "备注"
git commit -m "write a readme.txt"
git commit是一次性提交很多文件,所以你可以add很多文件,在一起提交,比如:
git add file1.txt
git add file2.txt file3.txt
git commit -m "add 3 files"
如果我在一次修改readme.txt文件但是还没有add和commit,我想知道我修改了什么内
容。
git diff readme.txt
如果我们add和commit很多文件我们想知道这些文件的情况
git log
如果嫌弃git log打印的信息太多可以使用
git log --pretty=oneline
如果我们添加的文件都已经commit提交了想回退到上一个版本
git reset --hard HEAD^
git commit --amend
如果你发现回退错了又想回到不回退之前那个版本
git reset -hard 想回退版本的id号(id号就是用git log查看到的)
但是如果你忘记你回退版本的id号了怎么办,可以用git reflog 来显示你之前提交的
命令。
如果修改了add到暂存区了,在一次修改,然后commit,这样最终提交的只是算第一次
修改的,因为第二次修改的还没有add.
如果你修改文件后还没有add,你现在不想修改了,把修改的东西删除
git checkout -- readme.txt
如果你修改后已经add到暂存区,你可以先回到工作区在删除工作区
git reset HEAD readme.txt
git checkout -- readme.txt
如果你添加一个文件test.txt并且已经commit到版本库了,你rm test.txt
只是删除工作区的。这时候你有两种选择,第一种帮test.txt完全删除:git rm
test.txt。第二种你不想删除了需要恢复git checkout -- test.txt
克隆一个远程库
git clone git@192.168.1.7:Tom/hello-word.git
cd hello-word
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
推送先有文件夹
cd existing_folder
git init
git remote add origin git@192.168.1.7:Tom/hello-word.git
git add .
git commit -m "Initial commit"
git push -u origin master
git push -u origin master:master //第一个master代表本地仓库分支名称,第二个
分支代表远程仓库分支名字(如果远程仓库没有这个名字,可以随便取)
推送一个现有的git仓库
cd existing_repo
git remote rename origin old-origin
git remote add origin git@192.168.1.7:Tom/hello-word.git
git push -u origin --all
git push -u origin --tags
如果本地仓库推送到远程仓库时出现错误error: failed to push some refs to
git pull --rebase origin master
git push -u origin master
查看远程库信息
git remote -v
删除远程库连接
git remote rm origin
分支管理
(第一种方法)创建并跳转分支
git checkout -b dev(一条指令实现)
两条指令实现
git branch dev
git checkout dev
(第二种方法)
git switch -c dev (一条指令实现)
查看在哪个分支
git branch
合并指定分支到当前分支
git merge dev
删除分支
git branch -d dev(要在其他分支操作,不能在本分支操作)
如果在分支上修改提交commit,在主分支上也修改提交,这时候git merge dev
合并分支后会提示分支冲突,所以就需要在主分支在一次去提交就能解决冲突。
用带叁数的git log 可以看到分支的合并情况
git log --graph --pretty=oneline --adbrev-commit
git merge dev(这种是用了fast forward模式合并)如果想禁用这种方法还可以
git merge --no-ff dev或者git merge --no-ff -m "注释" dev
把当前的工作现场备份起来,
git stash
等以后恢复现场后继续工作
git stash pop
提示:更新被拒绝,
因为您当前分支的最新提交落后于其对应的远程分支。
提示:再次推送前,先与远程
变更合并(如 ‘git pull …’)。
详见
提示:’git push –help’ 中的 ‘Note about fast-forwards’ 小节。
$git fetch origin //获取远程更新
$git merge origin/master -m "message" //把更新的内容合并到本地分支
查看之前的提交记录
git log --oneline
修改后还没有add提交可以通过这条命令回退到上一个版本
git reset --hard
回退到上个版本后发现多了很多没有跟踪的文件,可以删掉那个那些文件然后在回退
一个版本git reset --hard
拉取远程仓库更新内容
git fetch
gitk --all
git分支如何改名字
假设分支名称为oldName
想要修改为newName
1、本地分支重命名(还没有推送到远程)
git branch -m oldName newName
2、远程分支重命名(已经推送远程-假设本地分支和远程对应分支名称相同)
a.重命名远程分支对应的本地分支
git branch -m oldName newName
b.删除远程分支
git push --delete origin oldName
c.上传新命名的本地分支
git push origin newName
d.把修改后的本地分支与远程分支关联
git branch --set-upstream-to origin/newName