Git
0.安装git
sudo apt-get install git
1. 配置用户名和邮箱
zhan052@krk-nas:~> git config --global user.name
git config --global user.email "hongjian.zhang@nokia-sbell.com"
git config --global user.name "hzhan052 Hongjian Zhang"
git config credential.helper store
hzhan052@krk-nas:~> git config --global user.name
git config --global user.name "hzhan052 Hongjian Zhang"
git commit --amend --reset-author
2.git pull
git status
git add <file_name>
git commit -m "<comments>"
git push
3.删除远端的文件
git rm 文件名
git rm -r 文件夹名
git commit -m "remove 文件名"
git commit -m "rm unused files"
git push origin 分支
4. 放弃修改文件
git checkout -- <file>
5. 重命名远端文件
$ git mv old_file new_file,
$ git add && git commit && git push
6.从远端 checkout分支
git checkout -b nanjing_pet_uuf origin/nanjing_pet_uuf
ute@IAV-NJN-CLOUD002TL002-UTE:~/workspace/5G_ASIR_Full_Auto_Pipeline_StepbyStep/testline_configuration_5G/Nanjing/7_21_CLOUD002TL002$ sudo git push
git push --set-upstream origin nanjing_pet_config_5G19A
ute@IAV-NJN-CLOUD002TL002-UTE:~/workspace/5G_ASIR_Full_Auto_Pipeline_StepbyStep/testline_configuration_5G/Nanjing/7_21_CLOUD002TL002$ git push --set-upstream origin nanjing_pet_config_5G19A
sudo git push --set-upstream origin nanjing_pet_5G19A
git -c credential.helper= -c core.quotepath=false -c log.showSignature=false pull --progress --no-stat -v --progress origin nanjing_pet_5G19A
git -c credential.helper= -c core.quotepath=false -c log.showSignature=false push --progress --porcelain origin refs/heads/nanjing_pet_5G19A:nanjing_pet_5G19A
git push origin refs/remotes/origin/master
git pull <remote> <branch>
git branch --set-upstream-to=origin/<branch> Nanjing_5G19B_PET_FOR_3ABILS
ute@IAV-NJN-CLOUD004TL004:~/workspace/5G_ASIR_Full_Auto_Pipeline_StepbyStep_debug_for_3Abils_19B/robotws5g$ git pull origin Nanjing_5G19B_PET_FOR_3ABILS
7: git branch
1.查看分支: git branch
2.删除本地分支 git branch -d 分支名字
3.删除远端分支 git push origin --delete 分支名字
error: failed to push some refs to ‘git@github.com:xxxxxxxx/xxxxxxxxxx.git’
解决办法: git checkout xxxxx-fixbug 切换到当前分支上, 然后再 进行 git push –delete origin origin/xxxxx-fixbug
4.创建分支 :git branch [branchname]
5.查看全部分支(包含本地和远程) :git branch -a
6. git checkout -b branchName commitId
7. git merge
8. git log --oneline
9. 创建新分支:git branch branchName
10. 切换到新分支:git checkout branchName
11. git checkout -b branchName
12. git checkout -B <branch>
那么使用普通的git checkout -b <branch>这个命令,是会报错的,且同名分支无法创建。如果使用-B参数,
当前分支为master,且仓库中已经存在分支a,我们先用git checkout -b a来创建a分支,必然会失败的,并提示我们仓库中已经有了一个a分支咯,
仿佛在说“hi,哥们,你已经有了一个老婆了,一夫一妻制你的不懂?你以为这里是印度啊?”。随后,我们使用git checkout -B a,耶~~,it works!
13. git checkout --orphan <branch>
14. git checkout --merge <branch>
15.git checkout -p <branch>
8. 常用命令
git clone --depth=1 url
git init
git diff 查看变更内容
git add . 跟踪所有修改过的文件
git rm file
git rm --cached file
git commit -m "message"
git commit --amend
git reset --hard HEAD 撤销目录中未提交文件修改的内容
git checkout HEAD file 撤销指定的未提交文件的修改内容
git revert <commit> 撤销指定的提交
git branch
git checkout <branch/tag>
git branch <new-branch> 创建新的分支;
git branch -d <branch> ?????????
git tag 列出所有本地标签;
git tag <tagname> 基于最新提交创建标签
git tag -d <tagname>
git merge branch
git rebase branch
git remote -v
git remote show <remote>
git remote add <remote> <url>
git fetch <remote> 从远程库获取代码
git pull <remote> <branch> 下载代码及快速合并
git push <remote> <branch> 上传代码及快速合并
git push <remote> <branch/tag-name>
git push --tags 上传所有标签
9.automation
0 9:20:23 > git rev-parse --is-inside-work-tree # timeout=10
09:20:23 > git config remote.origin.url https://wrgitlab.int.net.nokia.com/5G/robotws5g.git # timeout=10
09:20:23 Fetching upstream changes from https://wrgitlab.int.net.nokia.com/5G/robotws5g.git
09:20:23 > git --version # timeout=10
09:20:23 using GIT_ASKPASS to set credentials
09:20:23 > git fetch --tags --progress -- https://wrgitlab.int.net.nokia.com/5G/robotws5g.git +refs/heads/*:refs/remotes/origin/*
09:20:47 > git rev-parse refs/remotes/origin/Nanjing_5G19A_PET_FOR_3ABILS^{commit} # timeout=10
09:20:47 > git rev-parse refs/remotes/origin/origin/Nanjing_5G19A_PET_FOR_3ABILS^{commit} # timeout=10
09:20:47 > git config core.sparsecheckout # timeout=10
09:20:47 > git checkout -f 325a0245d1a3b646a5a3f883de8e81f0a1480c27
09:20:47 > git branch -a -v --no-abbrev # timeout=10
09:20:47 > git branch -D Nanjing_5G19A_PET_FOR_3ABILS # timeout=10
09:20:47 > git checkout -b Nanjing_5G19A_PET_FOR_3ABILS 325a0245d1a3b646a5a3f883de8e81f0a1480c27
09:20:47 > git rev-list --no-walk 325a0245d1a3b646a5a3f883de8e81f0a1480c27 # timeout=10
10. git diff
git diff
git diff --cached
git diff --staged
git diff HEAD
git diff topic master 或 git diff topic..master
git diff topic...master
git diff --stat
git diff test
git diff HEAD -- ./lib
git diff HEAD^ HEAD
git diff SHA1 SHA2
11.从指定的分支上克隆
git clone -b Nanjing_5G19B_PET_FOR_3ABILS https://wrgitlab.int.net.nokia.com/5G/robotws5g.git
12. git check out
git checkout .
git checkout -- filepathname
git add 文件夹/ 添加整个文件夹及内容
git add *.文件类型 添加目录中所有此文件类型的文件
git add <file> 提交单个文件
git add . // 提交所有发生变化的文件添加到暂存区(增改),不包括删除
git add -u // 只提交修改的文件和删除添加到暂存区,不包括新文件
git add -A //所有文件(. && -u 集合) git的版本不同,命令则不一样
git add --all
13. git remote -v
ute@IAV-NJN-CLOUD004TL004:~/robotlte/robotws5g/testsuite/UUF/Nanjing$ git remote -v
origin https://wrgitlab.int.net.nokia.com/5G/robotws5g.git (fetch)
origin https://wrgitlab.int.net.nokia.com/5G/robotws5g.git (push)
14. git add
git add . 不小心添加了多余的文件怎么办?
git reset HEAD 全部撤销最近一次add
git reset HEAD 目录文件,撤销一个文件