Fork me on GitHub

git

Git学习笔记

创建仓库

使用Git前,需要先建立一个仓库(repository)。您可以使用一个已经存在的目录作为Git仓库或创建一个空目录。使用您当前目录作为Git仓库,我们只需使它初始化。

1
git init

使用我们指定目录作为Git仓库。

1
git init newrepo

创建文件夹

1
2
3
mkdir w3cschoolcc
cd w3cschoolcc
ls -a

远程仓库操作

1
git remote // 远程仓库操作

从远程获取代码库

1
git fetch  // 从远程获取代码库

查看分支命令

1
git branch (branchname)   // 查看分支命令      (-a 所有、  )

切换分支命令

1
git checkout (branchname) // 切换分支命令

下载远程代码并合并

1
git pull     // 下载远程代码并合并

提交

1
git add .    // .是提交全部的代码,如果要提交只改的文件,就在后面加入文件名

提交暂存区到本地仓库

1
git commit -m "注释" --no-verify   // 提交暂存区到本地仓库

修改的文件已被git commit,但想再次修改不再产生新的Commit

1
# 修改最后一次提交 $ git add sample.txt$ git commit --amend -m"说明"

上传远程代码并合并

1
git push     // 上传远程代码并合并

撤销

1
git reset HEAD 名

回滚

1
git log --all  // 打印日志git reset --hard 名  // 回滚

改变分支拉代码

1
git initgit remote add origin http://10.124.163.76:8888/support/tgportal/mqfrontgit fetchgit branch -agit checkout XXXgit pull origin 分支:分支

强制拉代码

1
git reset --hard origin/master

迁移

1
cd 拉下来的代码文件删除隐藏的.gitgit initgit remote add origin 地址栏链接git add .git commit -m "Initial commit"git pull --rebase origin mastergit push origin master

删除最后一次远程提交

方式一:使用revert

1
git revert HEADgit push origin master

方式二:使用reset

1
git reset --hard HEAD^git push origin master -f

二者区别:

  • revert是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在;
  • reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录。

情况三:回滚某次提交

1
# 找到要回滚的commitIDgit loggit revert commitID

删除某次提交

1
git log --oneline -n5git rebase -i "commit id"^ //注意:需要注意最后的^号,意思是commit id的前一次提交git rebase -i "5b3ba7a"^