Git的使用以及常见的问题

1. git add .  只是追踪当前的状态,如果修改文件还需要再执行一下git add .

2. git 中需要忽略的文件都在 .gitignore文件中
   文件 .gitignore 的格式规范如下:
      (1)所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
      (2)可以使用标准的 glob 模式匹配。
      (3)匹配模式最后跟反斜杠(/)说明要忽略的是目录。
      (4)要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

3. 当git add . 之后通过git diff可以查看文件的变动情况,也可以通过git diff -cache查看已经暂存起来的变化

4. 每次执行git commit 之前得执行一下git status 可以查看所有边修改过的文件是否已经暂存起来

5. git log 查看提交的历史
   git log -p -2-p是显示文件每次提交的内容的差异,-2是显示最近两次的更新)
   git log --stat 查看显示简要的行数统计

6. git add .之后取消暂存:
   1. git status
   2. git reset HEAD filename(test.txt)
   3. git status


7. 修改提交说明:
   git commit --amend
     英文输入状态下按i,进入编辑模式下,在第一行修改提交文件的commit信息

   如果刚才提交时忘了暂存某些修改,可以先补上暂存操作,然后再运行 –amend 提交:
      (1) git commit -m 'initial commit'
      (2) git add forgotten_file
      (3) git commit --amend

8. 查看当前的远程仓库:
   git remote
   git remote -v (-v显示对应的克隆地址)

9. 用命令添加远程仓库
   git remote add pb git://github.com/paulboone/ticgit.git
   git remote -v

10. 从远程仓库抓取数据
   git fetch [remote-name]
   git fetch[pb/master]  pb远程仓库名

   git fetch 只会抓取上次克隆以后,别人提交到远程仓库的左右更新,
   fetch知识简单地拉取到本地, 不自动合并,需要手动合并

11. 查看远程仓库的详细信息:
    git remote show [remote-name] 查看某个远程仓库的详细信息
    git remote show origin

12. 远程仓库的删除和重命名:
    git remote rename pb paul
    git remote 查看仓库
    git remote rm paul 删除名为paul的远程仓库

13. 创建分支:
   git checkout -b test
  这样就相当于执行了下面的两步操作:
   (1) git branch test
   (2) git checkout test

14. (1) 查看分支信息:git branch -v
    (2) 查看尚未合并的工作:git branch --no-merged

15 合并分支:
   git merge master

  衍合:
      git checkout experiment
      git rebase master

  将test分支的变化包含到master分支: git rebase master server
  一旦分支中的提交对象发布到公共仓库,就千万不要对该分支进行衍合操作。


16. 提现最后一次提交:
    git log
    git show ca82a6dff817ec66f44342007202690a93763949 == git show topic1


17. 在一些文件上进行工作,有可能还暂存其中一个变更, 如果你运行 git status,
你可以看到你的中间状态用git stash 可以将其暂存起来, 查看现有的储藏 git stash list
   查看储藏: git stash list
   删除储藏: git stash drop stash@{2}

   在这个案例中,之前已经进行了两次储藏,所以你可以访问到三个不同的储藏。
   你可以重新应用你刚刚实施的储藏,所采用的命令就是之前在原始的 stash
   命令的帮助输出里提示的::git stash apply。如果你想应用更早的储藏,你可以通过名字指定它,
   像这样::git stash apply stash@{2}。如果你不指明,Git 默认使用最近的储藏并尝试应用它:

   stash@{0}: WIP on test: 3417b46 upload_log.py文件无太大变动,已测试修改
   stash@{1}: WIP on test: c1064dc 用pytest去测试transfer和executor
   stash@{2}: WIP on master: 5ba8046 1
   stash@{3}: WIP on master: 5ba8046 1
   stash@{4}: WIP on test: dc245d5 test1

   git stash show -p stash@{0} | git apply -R
   同样的,如果你沒有指定具体的某个储藏,Git 会选择最近的储藏:
   
   git stash show -p | git apply -R
   你可能会想要新建一个別名,在你的 Git 里增加一个 stash-unapply 命令,这样更有效率。例如:
   
   git config   --global alias.stash-unapply '!git stash show -p | git apply -R'
   git stash
   #... work work work
   git stash-unapply


18. git commit之后,想撤销commit
    git reset --mixed HEAD~x (x代表之前的x次操作)
    
    git reset --mixed HEAD^(^代表上一次操作)
    --mixed
    意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
    这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
    
    git reset --soft HEAD~x
    --soft
    不删除工作空间改动代码,撤销commit,不撤销git add .
    
    git reset --hard HEAD~x
    --hard
    删除工作空间改动代码,撤销commit,撤销git add .
    
    注意完成这个操作后,就恢复到了上一次的commit状态。
    
解决git每次拉项目都要输入账号和密码
 git config --global credential.helper store
 执行该命令会在gitconfig目录下生成一个文件,记录你的账号和密码,
 当你再次执行时就不需要再输入账号和密码了
强制拉去远程分支
git fetch -all 不进行合并拉取远程分支代码
git reset --hard origin/dev 撤销本地、暂存区、版本库(用远程服务器
							origin/master替换本地、暂存区、版本库)
git pull origin master  从远程仓库同步代码

一条命令执行git强制覆盖本地命令:
git fetch --all && git reset --hard origin/master && git pull
提交代码的时候显示别人的名称

 1. git config --global -l  (查看email和用户名是否是自己的)
   	user.email=xxx@xxx.com
	user.name=admin
 2. 设置用户名和邮箱
 	git config --global user.name "username"
 	git config --global user.email useremail@qq.com (无双引号)
 3.查看用户名和邮箱
 	git config user.name
	git config user.email
4.查看其他配置信息(git设置列表)
git config --list 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值