git基本用法

文档地址 https://git-scm.com/book/zh/v2

1.初次执行

git init  #(会在当前文件夹下生成.git文件)
git remote add origin http://...................(远程仓库地址)
git pull origin develop  #(把远程仓库的.gitignore文件拉取到本地目录下,如果远程目录为空,.gitignore在本地项目下创建的则不需要执行git pull ...)(没有设置用户名密码时,执行会弹出输入用户名和密码,要用有管理员权限的,否则push不上去)

2.提交代码

git status {*.j*,*er.xml}	#查看本地变更的java,js,jsp,Mapper.xml等文件的变更状态
git add .	#将变更文件添加到缓存区
git commit -m "初始化代码"	#提交代码到本地分支
    #git commit 时如果没有设置邮箱和用户名,会报错让你设置用户名和邮箱(
    #            git config --global user.name "名字" 
    #            git config --global user.email "邮箱"
    #            (执行后会在C:\Users\Administrator生成.gitconfig文件,要改时可以手动改)
git commit --amend	#修改最后一次提交的注释信息;
git push origin dev:dev	#提交代码到远端分支;git push origin 本地分支:远端分支(":"左右没有空格,远端分支名不存在,则新建分支)

3.分支管理

3.1.git分支管理思路

  • 在本地创建一个与远端develop分支相同的develop分支,用于每天同步远端develop代码。
  • 本地开发有开发任务,就从本地develop分支上去创建新的任务分支。在同步远端代码后,需要本地merge本地的develop分支,如果有冲突本地解决冲突。这样在任务开发完成时提交代码就不会和远端分支产生冲突了。
  • 本地正在开发任务,有新任务插入。则需要将正在开发的任务提交本地git仓库,然后切换到本地develop分支上为新任务创建新的分支进行开发。

3.2.常用语句

1.	git checkout -b dev	#创建分支并切换到分支

2.	git branch -vv	#显示每个(本地)分支当前指向的提交记录的哈希值,以及和其上游分支的相对位置(如果有的话)
3.	git branch -av	#显示所有本地及远端分支名

4. 	git branch --set-upstream-to dev remotes/origin/dev	#Git在本地新建分支后,可做远程分支关联。关联目的是,如果在本地分支下进行pull 和push操作时 ,便不需要指定远程的分支。
5.	git pull origin dev:dev	#从远端拉取代码,替换本地文件。注意:dev可以是本地当前分支

6.	git fetch origin develop : dev	#从develop分支每天更新代码(拉取并合并,":"左右没有空格,本地分支名不存在,则新建分支。5同)。注意:dev“不能”是本地当前分支

7.	git diff tmp	#来比较本地代码与刚刚从远程下载下来的代码的区别

8.	git merge tmp	#合并temp分支到本地的master分支

9.	git branch -d temp	#如果不想保留temp分支 可以用这步删除

10.	git remote prune origin	#利用命令临时去除Git remotes/origin/* 分支本地信息(推荐)。

11.     git branch --delete --remotes <remote>/<branch> #可以删除追踪分支,该操作并没有真正删除远程分支,而是删除的本地分支和远程分支的关联关系,即追踪分支。

12.     git push origin --delete branch #如上,通过该命令行会删除远程分支和追踪分支,不需要单独删除追踪分支,但是如果通过网页对远程分支进行删除,追踪分支是不会被删除的.

13.     git fetch origin --prune(或它的简写 git fetch origin -p ) #在git版本1.6.6之后,可以通过前面两条命令,来单独删除追踪分支。

3.3.只合并某个分支中的某个commit

3.3.1只合并一个commit

git cherry-pick 8ad7af6add8sd
#将commit 8ad7af6add8sd合并到当前分支

3.3.2.合并连续的多个commit到指定的分支上

#想要将dev分支中从 5adfad6dasd7d 到 6fad7dadsf8a 连续10个(多个)commit合并到当前分支(current_branch)。
git rebase --onto current_branch 5adfad6dasd7d^

4.版本修改

git rm --cached README #从本地Git仓库中删除readme文件,无论是已经commit的还是add的;
#如果一个文件已经add到暂存区,还没有 commit,此时如果不想要这个文件了,用版本库内容清空暂存区:

git reset HEAD #回退到当前版本(在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100);

git branch -d temp #删除temp分支


##查看最近提交的修改
git show

#知道commit_id的情况下:
#1. 获取commit_id
git log 
#2. 查看commit内容
git show commit_id	#[(如:git show 57f217c884a2e31a98a8f3fd2ce803b18bc479d4)查看最近n次提交的修改]

git log -p <file>	#[查看,谁在什么时间修改了,指定文件的哪些内容]

#回退到指定版本(会更改本地代码)
git reset --hard commit_id     #退到/进到 指定commit的码 commit_id:239afed0857cc2e77c17c01014077808619af64d
#回退指定文件
git checkout HEAD <file_path> #回退到本地仓库版本
git rm --cached <file_path>	#删除暂存区或分支上的文件, 但工作区需要使用, 只是不希望被版本控制

git stash #能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录;
git stash save "注释" #作用同git stash,区别是可以加一些注释
git stash list #查看当前stash中的内容;
git stash pop #将当前stash中的内容弹出(堆栈中的内容会被删除),并应用到当前分支对应的工作目录上
git stash apply #作用同git stash pop,但堆栈中的内容不会被删除;
git stash drop + 名称 #从堆栈中移除某个指定的stash
git stash clear #清除堆栈中的所有内容
git stash show #查看堆栈中最新保存的stash和当前目录的差异;

查看当前用户名密码并修改

# 获取当前登陆用户:
git config user.name   # 获取当前登录的用户
git config user.email  # 获取当前登录用户的邮箱

# 修改登陆用户:
git config --global user.name 'userName'    # 修改登陆账号,userName为你的git账号
git config --global user.email 'email'      # 修改登陆邮箱,email为你的git邮箱
git config --global user.password 'password'  # 修改登陆密码,password为你的git密码
posted @ 2020-08-23 11:14  howard4  阅读(192)  评论(0)    收藏  举报