笔记:git 常用指令(ubuntu)

git是一种分布式版本控制系统,能够记录自己对文件的每次改动,还可以让多人协作工作。目前学习了一下,做个总结笔记。

安装git

在ubuntu 环境下安装 命令为: sudo apt-get install git
安装完之后 设置你的用户名和邮箱。

git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"

新建一个文件夹作为能本地文件存放的仓库。例如新建一个文件夹workspace。在文件夹目录下 右击在终端运行,输入命令 ,初始化本地仓库。

git init

使用本地仓库

在文件夹下新建文件 或者改动文件之后,需要执行下列两条命令。

git add 文件名.后缀执行命令,没有提示证明成功了。

git commit -m"备注"提交时需要加入备注 ,方便日后查看。

git status 查看本地仓库状态

git diff 文件名.后缀查看修改了的文件的前后差异

git log查看修改日志

git reset --hard 版本索引 回退到之前的版本,版本索引可以 使用git log 查看,找到能之前的版本中对应的 commit 后面一长串字符那个。 因为你每次修改都git commit -m"备注",可以根据备注找到想要的版本索引。

git reflog 查找每次命令索引

扫描二维码关注公众号,回复: 11210542 查看本文章

git diff HEAD -- 文件名.后缀 查看本次修改的文件和上次commit提交之后文件的差异。
未 git add的文件中 使用:git checkout -- 文件名.后缀丢弃文件的修改

已经 git add 未git commit ,撤回修改 使用: git reset HEAD 文件名.后缀git checkout -- 文件名.后缀

git rm 文件名.后缀 删除工作区文件 ,如果删错 使用:git checkout -- 文件名.后缀 命令找回 ,找回的你最近一次的 commit的文件。

链接远程仓库

在github 或者gitlab 上注册一个帐号 新建一个项目 ,链接本地仓库。
链接顺序:

  1. 在本地创建SSH key 。ssh-keygen -t rsa -C "你的邮箱"一路回车,使用默认值即可,如有需求也可以自行设置密码。
  2. 查看自己本地的 SSH key 。在目录下运行cat ~/.ssh/id_rsa.pub,会输出一长串 以 你的邮箱结尾。复制。
  3. 添加ssh keys。在 github 或者gitlab 的设置中找到ssh keys,将第二步复制好的key 放入 ssh keys中。
  4. 链接:分两种情况

第一种情况:将本地文件链接到github或者gitlab对应的项目:git remote add origin [email protected]:你的github或者gitlab 用户名/你新建的项目名.git注意( 将你的用户名 和新建的项目名放入其中),再输入git push -u origin master,将你的文件推上去。

第二种情况:复制文件github或者gitlab对应的项目到本地:git clone [email protected]:你的github或者gitlab 用户名/你要复制的项目名.git

之后再推送文件更新文件等 使用 git push origin master 如果能推送其他分支 可以是git push origin 分支名

常用操作

git branch 查看所有分支

git branch 分支名创建分支

git checkout 分支名 或者 git switch 分支名 (git 2.3版本才有效,之前版本git 没有switch 命令) 切换分支

git checkout -b 分支名 或者git switch -c 分支名创建+切换分支

git merge 分支名快速合并某分支到当前分支

git branch -d 分支名删除分支

git branch -D 分支名强制删除分支(当出现修改未提交,但是又想删除分支时)

git log --graph --pretty=oneline --abbrev-commit 查看分支合并图

git merge --no-ff -m "备注" 分支名普通合并某分支到当前分支,合并后有历史记录,而直接git merge是快速合并,看不到合并记录。

git stash 将当前工作现场“保存”起来,等需要时用git stash apply 或者git stash pop命令恢复现场后继续工作
特别注意使用git stash apply 后 还需要用git stash drop 删除stash缓存的内容。而 使用git stash pop命令时恢复时自动清除stash缓存,不需要再额外写命令了。

git cherry-pick 操作索引将之前的操作过的命令,在本分支再做一次,避免重复操作。

git pull 将远程仓库文件拉到本地,远程仓库文件修改的地方,在本地文件也有相应变化。

git fetch 同样是 将远程仓库文件拉到本地,但是不会自动merge,(git pull 会自动merge),相当于 拉取了远程仓库到本地分支,这样方便控制合并,需要合并时再和本地分支合,并如下代码所示。

git fetch orgin master //将远程仓库的master分支下载到本地当前master中

git log -p master  ..origin/master //比较本地的master分支和origin/master分支的差别

git merge origin/master //进行合并

也可以

git fetch origin master:dev //从远程仓库master分支获取最新,在本地建立dev分支
git diff dev //將当前分支和dev进行对比
git merge dev合并dev分支到当前分支
 

git push origin 分支名 将本地文件上传到仓库的分支下,如果上传达到master ,直接 git push默认是master 。

git branch --set-upstream-to 分支名 origin/分支名 本地分支和远程分支的创建链接

git remote -v查看远程库信息

git checkout -b 分支名 origin/分支名在本地创建和远程分支对应的分支

git rebase命令可以把本地未push的分叉提交历史整理成直线,目的是使得我们在查看历史提交的变化时更容易

git tag 标签名 为当前分支创建一个标签

git tag查看标签

git tag 标签名 操作索引为之前索引对应的操作打标签

git tag -a 标签名 -m "备注" 操作索引创建带有说明的标签

git show 标签名查看标签说明

git push origin 标签名可以推送一个本地标签

git push origin --tags可以推送全部未推送过的本地标签

git tag -d 标签名可以删除一个本地标签

git push origin :refs/tags/标签可以删除一个远程标签

在文件夹中 我们希望生成文件不必提交,但是他又在git 目录下,每次都有git status 都有修改提示,怎么办呢。
在本地仓库目录下 新建. gitignore文件(输入 touch .gitignore ,生成“.gitignore”文件。),将需要忽略的文件名 或者文件夹写入其中。

原创文章 6 获赞 10 访问量 369

猜你喜欢

转载自blog.csdn.net/qq_23126315/article/details/105718474